sha256:e7c46dd6753208f4ee1dd13e96cb30e6636012c13b77cccf8337458e714fe177
Last pushed
6 months by eloydsdlh
Type
Compose
Manifest digest
sha256:e7c46dd6753208f4ee1dd13e96cb30e6636012c13b77cccf8337458e714fe177
services:
mysql-users:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
MYSQL_DATABASE: ${MYSQL_USERS_DB:-usersdb}
MYSQL_USER: ${MYSQL_USER:-user}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-password}
ports:
- "3305:3306" # Port exposed for development
volumes:
- mysql_users_data:/var/lib/mysql
networks:
- app-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u${MYSQL_USER:-user}", "-p${MYSQL_PASSWORD:-password}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
mysql-apartments:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
MYSQL_DATABASE: ${MYSQL_APARTMENTS_DB:-apartmentsdb}
MYSQL_USER: ${MYSQL_USER:-user}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-password}
ports:
- "3303:3306"
volumes:
- mysql_apartments_data:/var/lib/mysql
networks:
- app-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u${MYSQL_USER:-user}", "-p${MYSQL_PASSWORD:-password}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
# BBDD MySQL for bookings
mysql-bookings:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
MYSQL_DATABASE: ${MYSQL_BOOKINGS_DB:-bookingsdb}
MYSQL_USER: ${MYSQL_USER:-user}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-password}
ports:
- "3302:3306"
volumes:
- mysql_bookings_data:/var/lib/mysql
networks:
- app-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u${MYSQL_USER:-user}", "-p${MYSQL_PASSWORD:-password}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
# BBDD MySQL for reviews
mysql-reviews:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
MYSQL_DATABASE: ${MYSQL_BOOKINGS_DB:-reviewsdb}
MYSQL_USER: ${MYSQL_USER:-user}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-password}
ports:
- "3304:3306"
volumes:
- mysql_reviews_data:/var/lib/mysql
networks:
- app-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u${MYSQL_USER:-user}", "-p${MYSQL_PASSWORD:-password}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
# MinIO for file storage
minio:
image: minio/minio
command: server /data --console-address ":9001"
restart: always
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
ports:
- "9000:9000" # API
- "9001:9001" # Web console
volumes:
- minio_data:/data
networks:
- app-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 10s
retries: 5
start_period: 20s
# MinIO config
mc:
image: minio/mc:latest
depends_on:
minio:
condition: service_healthy
entrypoint: >
/bin/sh -c "
sleep 5 &&
mc alias set local http://minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD:-minioadmin} &&
mc mb -p local/${MINIO_BUCKET:-apartments-images} || true &&
mc anonymous set public local/${MINIO_BUCKET:-apartments-images}
exit 0
"
networks:
- app-network
# Jaeger for distributed traceability
jaeger:
image: jaegertracing/all-in-one:latest
restart: always
ports:
- "16686:16686" # UI of Jaeger
- "4318:4318" # OTLP HTTP
environment:
COLLECTOR_OTLP_ENABLED: "true"
networks:
- app-network
# Main application (Backend + Frontend) - Develop
app:
image: eloydsdlh/apartments-app:dev
pull_policy: always
restart: always
ports:
- "443:443"
- "8761:8761" # Eureka
environment:
# General config
JAVA_OPTS: "-Xmx1024m -Xms512m -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
SPRING_PROFILES_ACTIVE: dev
# BBDD - Users
USER_DB_URL: jdbc:mysql://mysql-users:3306/${MYSQL_USERS_DB:-usersdb}
USER_DB_USERNAME: ${MYSQL_USER:-user}
USER_DB_PASSWORD: ${MYSQL_PASSWORD:-password}
# BBDD - Apartments
APARTMENT_DB_URL: jdbc:mysql://mysql-apartments:3306/${MYSQL_APARTMENTS_DB:-apartmentsdb}
APARTMENT_DB_USERNAME: ${MYSQL_USER:-user}
APARTMENT_DB_PASSWORD: ${MYSQL_PASSWORD:-password}
# BBDD - Bookings
BOOKING_DB_URL: jdbc:mysql://mysql-bookings:3306/${MYSQL_BOOKINGS_DB:-bookingsdb}
BOOKING_DB_USERNAME: ${MYSQL_USER:-user}
BOOKING_DB_PASSWORD: ${MYSQL_PASSWORD:-password}
# BBDD - Reviews
REVIEW_DB_URL: jdbc:mysql://mysql-reviews:3306/${MYSQL_REVIEWS_DB:-reviewsdb}
REVIEW_DB_USERNAME: ${MYSQL_USER:-user}
REVIEW_DB_PASSWORD: ${MYSQL_PASSWORD:-password}
# MinIO
MINIO_URL: http://minio:9000
MINIO_EXTERNAL_URL: ${MINIO_EXTERNAL_URL:-http://localhost:9000}
MINIO_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
MINIO_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-minioadmin}
MINIO_BUCKET: ${MINIO_BUCKET:-apartments-images}
# JWT
JWT_SECRET: ${JWT_SECRET:-dev-secret-key}
# SSL/HTTPS
SERVER_SSL_KEY_STORE: ${SSL_KEY_STORE:-classpath:keystore.p12}
SERVER_SSL_KEY_STORE_PASSWORD: ${SSL_KEY_STORE_PASSWORD:-changeit}
SERVER_SSL_KEY_STORE_TYPE: ${SSL_KEY_STORE_TYPE:-PKCS12}
SERVER_SSL_KEY_ALIAS: ${SSL_KEY_ALIAS:-apartments}
# Logging
LOGGING_LEVEL_ROOT: INFO
LOGGING_LEVEL_COM_APARTMENTS: DEBUG
# Jaeger/OTLP
OTLP_ENDPOINT: http://jaeger:4318
# Email configuration
MAIL_USERNAME: ${MAIL_USERNAME}
MAIL_PASSWORD: ${MAIL_PASSWORD}
depends_on:
mysql-users:
condition: service_healthy
mysql-apartments:
condition: service_healthy
mysql-bookings:
condition: service_healthy
mysql-reviews:
condition: service_healthy
minio:
condition: service_healthy
jaeger:
condition: service_started
networks:
- app-network
healthcheck:
test: ["CMD", "curl", "-fk", "https://localhost:443/actuator/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 90s
volumes:
mysql_users_data:
mysql_apartments_data:
mysql_bookings_data:
mysql_reviews_data:
minio_data:
networks:
app-network:
driver: bridgedocker compose -f oci://eloydsdlh/apartments-compose:dev 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
16191
Last Updated
1 day
Single image that runs all of Jaeger backend components and UI in one container
Pulls
500M+
Stars
185
Last Updated
10 months