sha256:7bf0c7e01f736bc6da5d52f98d1f7eda0aee02f989439d2f709fde19c3380e43
Last pushed
3 months by mjpulido
Type
Compose
Manifest digest
sha256:7bf0c7e01f736bc6da5d52f98d1f7eda0aee02f989439d2f709fde19c3380e43
name: frict-dev
services:
mysql:
image: mysql:8.0
container_name: frict-dev-mysql
restart: unless-stopped
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: Frict
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- mysql_data_dev:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
mongodb:
image: mongo:latest
container_name: frict-dev-mongo
restart: unless-stopped
ports:
- "27017:27017"
environment:
- MONGO_INITDB_ROOT_USERNAME=user
- MONGO_INITDB_ROOT_PASSWORD=password
command: >
sh -c "echo 'frictSuperSecretReplicaKey123456' > /data/keyfile && chmod 400 /data/keyfile && chown 999:999 /data/keyfile && exec /usr/local/bin/docker-entrypoint.sh mongod --replSet rs0 --keyFile /data/keyfile --bind_ip_all"
volumes:
- mongodb_data_dev:/data/db
healthcheck:
test: >
mongosh --username user --password password --authenticationDatabase admin --eval "try { rs.status() } catch (e) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongodb:27017'}]}) }" --quiet
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
minio:
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
container_name: frict-dev-minio
restart: unless-stopped
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: "user"
MINIO_ROOT_PASSWORD: "password"
MINIO_SERVER_URL: "https://localhost:9000"
MINIO_BROWSER_REDIRECT_URL: "https://localhost:9001"
command: server /data --console-address ":9001"
volumes:
- minio_data_dev:/data
configs:
- source: minio_public_crt
target: /root/.minio/certs/public.crt
- source: minio_private_key
target: /root/.minio/certs/private.key
healthcheck:
test: ["CMD", "curl", "-k", "-f", "https://localhost:9000/minio/health/live"]
interval: 10s
timeout: 5s
retries: 5
app:
image: mjpulido/frict:latest
container_name: frict-dev-app
restart: unless-stopped
ports:
- "443:8443"
environment:
SPRING_PROFILES_ACTIVE: local
MYSQL_HOST: mysql
MYSQL_PORT: "3306"
MYSQL_DATABASE: Frict
MYSQL_USERNAME: user
MYSQL_PASSWORD: password
MONGODB_URI: "mongodb://user:password@mongodb:27017/Frict?authSource=admin&replicaSet=rs0"
APP_STORAGE_ENDPOINT: https://minio:9000
APP_STORAGE_PUBLIC_URL: https://localhost:9000/images
APP_STORAGE_BUCKET_NAME: images
AWS_ACCESS_KEY_ID: user
AWS_SECRET_ACCESS_KEY: password
JWT_SECRET: c3VwZXJfc2VjcmV0X2tleV9mb3JfZGV2ZWxvcG1lbnRfcHVycG9zZXNfb25seV8xMjM0NTY3ODkw
DB_ENCRYPTION_KEY: "1234567890123456"
CORS_ALLOWED_ORIGIN: https://localhost
env_file:
- path: .env
required: false
configs:
- source: minio_public_crt
target: /certs/public.crt
depends_on:
mysql:
condition: service_healthy
minio:
condition: service_healthy
mongodb:
condition: service_healthy
volumes:
mysql_data_dev:
mongodb_data_dev:
minio_data_dev:
configs:
minio_public_crt:
content: |
-----BEGIN CERTIFICATE-----
MIIDLDCCAhSgAwIBAgIUUqoM0hYMwvxNXFAe3bTV52UJ0EcwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI2MDUyNDIyNDYyMloXDTM2MDUy
MTIyNDYyMlowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAuoEHig/XYY/7v+uH1IxFucJxfHSMAgtVuhoNHWPi7iVF
++qfWq6L3ONGnwV/eqpSLm6xQmlEMXGaoREzjc34qaD+mmGX6mDNSzOHG/Cq3svj
duvNJquyBBNm3KfQCqKOXfStZdyKOKKL8RwC3X92Vwj5J8wuWPD0+KbUX7yOFFgi
nSsZtmQhGEuz95NsgN6tn7xE3TRkl5UGVobmlnrjYccEYOUpeZ1WvX0liwJZXlTn
63x322pHM1Q4u4QLrWKHSYvl82UesbEtq19JpbrM7y8CQIK2Sjl5slWRdzVvAWBO
xgoZapINBxEVAeyUf0DByLanOqGZ7FjkcxboAd+dqwIDAQABo3YwdDAdBgNVHQ4E
FgQUMluAl3xT+SY9V0qg84KVriG4zoowHwYDVR0jBBgwFoAUMluAl3xT+SY9V0qg
84KVriG4zoowDwYDVR0TAQH/BAUwAwEB/zAhBgNVHREEGjAYgglsb2NhbGhvc3SC
BW1pbmlvhwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQCi6dHbNXvzNI+F8FA8MxdR
6B5jIBUs9k9cyLd9u2GOFNgnZf/ncypSct1hV4xJhQLpkxuxxBwBrP176vagYadK
B9N5+ju+mUABxOkBdAFhcJa7Sxt/Udgo7wsfKXCC9BGfVoZn/3hq9242IpjHfUxg
fEhNL/jBhueKED6trugDJLhI+Z9veKq7YOwmq747I5VzR+EAuucZtpgKJXfByk29
ZLii1kCQIgfwla0f2W4faTspn5KN5JfVHBx0GQTo5jzWtLqCnIdqprz/1guwcVxw
58RToaOTF/gTohGKOf696NHEGKyvq+17GcHeN0pPPNNYF94qK9JZ8fjEhRx4XhKF
-----END CERTIFICATE-----
minio_private_key:
content: |
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC6gQeKD9dhj/u/
64fUjEW5wnF8dIwCC1W6Gg0dY+LuJUX76p9arovc40afBX96qlIubrFCaUQxcZqh
ETONzfipoP6aYZfqYM1LM4cb8Krey+N2680mq7IEE2bcp9AKoo5d9K1l3Io4oovx
HALdf3ZXCPknzC5Y8PT4ptRfvI4UWCKdKxm2ZCEYS7P3k2yA3q2fvETdNGSXlQZW
huaWeuNhxwRg5Sl5nVa9fSWLAlleVOfrfHfbakczVDi7hAutYodJi+XzZR6xsS2r
X0mluszvLwJAgrZKOXmyVZF3NW8BYE7GChlqkg0HERUB7JR/QMHItqc6oZnsWORz
FugB352rAgMBAAECggEAC9RNbAuQdppYGu1man5RviHf6mv9t2F6PXATtd+5q2Y0
0zonqBCR+pZ1ypq9T7I+4b3GnuSDXUTnlYVOkkwLOPVnHCDurpLOPhGerpB+eW50
xMW0wOw7HTijPjhaV8gObcNQ0II6I4+cWkIl7c3qpI0DOTTqh1ymTjNyr2QeC78v
VR4a27oKa4qsM16FbX5G77KNqXi+X+jw4HfGJoA0x/8Danv/M0A/7zMeBDsYpSoL
BwVJkrhzNbQYxKPXRKu996iIsVNXSTWqkRTLBbYM6SOrzzgtIJ/bxK/aetoDiSRf
dS4v+bumVEl2LNv3Z20oHkbpw9t1QyA7LFsxn2hz7QKBgQDfcPbYL7vTZMLEvShl
8lV8gQZUDVCVZD0R1fvY/L8Rjecy5JqCrEYcSCQ2izBldPzUlcSTNs9Elfh4Qp9h
SByzPWhaGeEfXJuhOLzwTXlX3TCz1VtAuC4/vxvJnSEDdioTg5DwDFI3WceUuIqe
7SM1d2z0T98gWY95JOeqH3YsZQKBgQDVrjGyfVVXrFUZa70+Bv6Q5qnkQ7rxfFj8
AO6XRJvMrVjm4eV3r8zUJSQ/IdFGMAdhsLtfEjfsLLmcWKMtzCkRYmu623ZZZho6
0D2LOqwcyKcOJIZNalteny39Z+mukhNVGtww71jf1o3I5zpO2upJxgN1GUmR2chg
Mmrbu2NYzwKBgQCfNxR9yc2x/UuX+x3NPxfRJvNGc1JnkUy+59aUsMzJim8jYagD
0xQGVRWQ1C/BK9J4/Ntc9yJMQf0SXI7LOCJTSj+QbH5w5YF0KUTgiqQbit6IVlC2
1kcGX3xCdreuisXCr+5YTr9K96tyeuk0A9Ah6h52HG/m0kqczUJShCalzQKBgQCD
YHSBz3l3TCeOV6Wky1wc7xUpmVMJQnDbkB8htjcsYrA0VFNngRkoniVpA3vN8Z24
PJcXXvYvKVh9finl8I6Xd7HQ0zoywQoDeyE7xzknAV9k3KQOWQQQa0I1eXw9ruZf
/wG+vIoiJaJLEY/SB9rgvPRHPOL037fJHXaB3va4FQKBgQCNjonQLDVDPhqgaEFd
uT0dW2oO2WPS+WQUwmRqA3Ua0UcR3inOUP1QLK6hlQAUZ0uWNw1IsQ6tmxkm8ovR
2KAgIYTglT6yRc8pG5G/QgtiZ+iIRiXfNTLf66NstPAGA9oapY4M7k8qNo8izKj4
NgapyhxfJc0giUeWs4d9uwvZXQ==
-----END PRIVATE KEY-----
docker compose -f oci://mjpulido/frict:latest-compose-single upUse the above command to pull and run the Compose file. Learn more.
MySQL is a widely used, open-source relational database management system (RDBMS).
Pulls
1B+
Stars
16185
Last Updated
8 days
MongoDB document databases provide high availability and easy scalability.
Pulls
1B+
Stars
10750
Last Updated
3 days