update docker
This commit is contained in:
+60
-37
@@ -2,45 +2,68 @@ version: "3.9"
|
||||
|
||||
services:
|
||||
database:
|
||||
image: mariadb:11.4-jammy
|
||||
container_name: consumer_api_db
|
||||
image: mysql:8.0
|
||||
container_name: psp_consumer_api_db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-root_password}
|
||||
MARIADB_DATABASE: ${DB_NAME:-consumer_db}
|
||||
MARIADB_USER: ${DB_USER:-consumer_user}
|
||||
MARIADB_PASSWORD: ${DB_PASSWORD:-consumer_password}
|
||||
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: "false"
|
||||
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${DATABASE_NAME}
|
||||
MYSQL_USER: ${DATABASE_USER}
|
||||
MYSQL_PASSWORD: ${DATABASE_PASSWORD}
|
||||
ports:
|
||||
- "${DB_PORT:-3306}:3306"
|
||||
- "${DATABASE_PORT}:3306"
|
||||
volumes:
|
||||
- mariadb_data:/var/lib/mysql
|
||||
- db_data:/var/lib/mysql
|
||||
- ./prisma/migrations:/docker-entrypoint-initdb.d
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
test: "mysqladmin ping -h 127.0.0.1 -u ${DATABASE_USER} -p'${DB_ROOT_PASSWORD}'"
|
||||
interval: 15s # Shortened interval, as MySQL is starting fast now
|
||||
timeout: 5s # Shorter timeout
|
||||
retries: 5 # Keep retries
|
||||
start_period: 30s # Reduced start_period since MySQL is fast
|
||||
|
||||
networks:
|
||||
- consumer_network
|
||||
- psp_consumer_network
|
||||
|
||||
api:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: consumer_api
|
||||
args:
|
||||
# Pass individual components that prisma generate needs during build
|
||||
NODE_ENV: ${NODE_ENV:-production}
|
||||
PORT: ${PORT}
|
||||
DATABASE_NAME: ${DATABASE_NAME} # From .env
|
||||
DATABASE_USER: ${DATABASE_USER} # From .env
|
||||
DATABASE_PASSWORD: ${DATABASE_PASSWORD} # From .env
|
||||
DATABASE_PORT: ${DATABASE_PORT} # From .env
|
||||
DATABASE_HOST: ${DATABASE_HOST} # From .env
|
||||
# Construct the DATABASE_URL and SHADOW_DATABASE_URL for the build context
|
||||
# Use 'database' as the host, as per docker-compose networking
|
||||
DATABASE_URL: mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}
|
||||
SHADOW_DATABASE_URL: mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}_shadow
|
||||
JWT_SECRET: ${JWT_SECRET} # From .env
|
||||
JWT_EXPIRES_IN: ${JWT_EXPIRES_IN} # From .env (ensure consistency with Dockerfile ARG)
|
||||
OTP_STATIC_CODE: ${OTP_STATIC_CODE} # From .env
|
||||
container_name: psp_consumer_api
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
database:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
NODE_ENV: ${NODE_ENV:-production}
|
||||
PORT: ${PORT:-5002}
|
||||
DATABASE_URL: mysql://${DB_USER:-consumer_user}:${DB_PASSWORD:-consumer_password}@database:3306/${DB_NAME:-consumer_db}
|
||||
SHADOW_DATABASE_URL: mysql://${DB_USER:-consumer_user}:${DB_PASSWORD:-consumer_password}@database:3306/${DB_NAME:-consumer_db}_shadow
|
||||
JWT_SECRET: ${JWT_SECRET:-your_jwt_secret_key_change_in_production}
|
||||
JWT_EXPIRATION: ${JWT_EXPIRATION:-604800}
|
||||
PORT: ${PORT}
|
||||
DATABASE_NAME: ${DATABASE_NAME} # From .env
|
||||
DATABASE_USER: ${DATABASE_USER} # From .env
|
||||
DATABASE_PASSWORD: ${DATABASE_PASSWORD} # From .env
|
||||
DATABASE_PORT: ${DATABASE_PORT} # From .env
|
||||
DATABASE_HOST: ${DATABASE_HOST} # From .env
|
||||
DATABASE_URL: mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}
|
||||
SHADOW_DATABASE_URL: mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}_shadow
|
||||
JWT_SECRET: ${JWT_SECRET}
|
||||
JWT_EXPIRES_IN: ${JWT_EXPIRES_IN}
|
||||
CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:5000,http://127.0.0.1:5000}
|
||||
OTP_STATIC_CODE: ${OTP_STATIC_CODE} # From .env
|
||||
ports:
|
||||
- "${PORT:-5002}:5002"
|
||||
volumes:
|
||||
@@ -48,26 +71,26 @@ services:
|
||||
- /app/dist
|
||||
- /app/node_modules
|
||||
networks:
|
||||
- consumer_network
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--quiet",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:5002/api/v1/health",
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
- psp_consumer_network
|
||||
# healthcheck:
|
||||
# test:
|
||||
# [
|
||||
# "CMD",
|
||||
# "wget",
|
||||
# "--quiet",
|
||||
# "--tries=1",
|
||||
# "--spider",
|
||||
# "http://localhost:5002/api/v1/health",
|
||||
# ]
|
||||
# interval: 30s
|
||||
# timeout: 10s
|
||||
# retries: 3
|
||||
# start_period: 10s
|
||||
|
||||
volumes:
|
||||
mariadb_data:
|
||||
db_data:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
consumer_network:
|
||||
psp_consumer_network:
|
||||
driver: bridge
|
||||
|
||||
Reference in New Issue
Block a user