forked from freeleaps/freeleaps-pub
138 lines
4.2 KiB
YAML
138 lines
4.2 KiB
YAML
services:
|
|
mongodb:
|
|
container_name: freeleaps2-mongodb-alpha
|
|
image: mongo:latest
|
|
profiles: [ alpha ]
|
|
restart: always
|
|
ports:
|
|
- ${MONGODB_PORT}:${MONGODB_PORT}
|
|
volumes:
|
|
- freeleaps2-mongodb-data:/data/db
|
|
networks:
|
|
- freeleaps2-network
|
|
|
|
rabbitmq:
|
|
container_name: freeleaps2-rabbitmq
|
|
image: rabbitmq:3.13
|
|
profiles: [ alpha, rabbitmq ]
|
|
restart: always
|
|
ports:
|
|
- ${RABBITMQ_PORT}:${RABBITMQ_PORT}
|
|
- ${RABBITMQ_PORT_1}:${RABBITMQ_PORT_1}
|
|
volumes:
|
|
- freeleaps2-rabbitmq-data:/var/lib/rabbitmq
|
|
networks:
|
|
- freeleaps2-network
|
|
|
|
frontend:
|
|
container_name: freeleaps2-frontend
|
|
build:
|
|
context: ${FRONTEND_HOME}
|
|
args:
|
|
CONTAINER_APP_ROOT: ${CONTAINER_APP_ROOT}
|
|
FRONTEND_PORT: ${FRONTEND_PORT}
|
|
profiles: [ prod, alpha ]
|
|
restart: always
|
|
ports:
|
|
- ${FRONTEND_PORT}:${FRONTEND_PORT}
|
|
depends_on:
|
|
- backend
|
|
networks:
|
|
- freeleaps2-network
|
|
chat:
|
|
container_name: freeleaps-chat
|
|
build:
|
|
context: ${CHAT_HOME}
|
|
args:
|
|
CONTAINER_APP_ROOT: ${CONTAINER_APP_ROOT}
|
|
profiles: [ prod, alpha ]
|
|
restart: always
|
|
ports:
|
|
- ${CHAT_PORT}:${CHAT_PORT}
|
|
environment:
|
|
- MONGODB_URI=${MONGODB_URI}
|
|
- MONGODB_NAME=freeleaps2
|
|
- RABBITMQ_HOST=${RABBITMQ_HOSTNAME}
|
|
- RABBITMQ_PORT=${RABBITMQ_PORT}
|
|
- TZ=Asia/Shanghai
|
|
command:
|
|
# Use a conditional check for RabbitMQ in alpha profile
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
if [[ \"${RABBITMQ_HOST}\" == 'freeleaps2-rabbitmq' ]]; then
|
|
while ! nc -z freeleaps2-rabbitmq ${RABBITMQ_PORT}; do
|
|
echo "Waiting for RabbitMQ to start..."
|
|
sleep 1
|
|
done
|
|
echo "RabbitMQ started"
|
|
fi
|
|
uvicorn main:app --host=0.0.0.0 --port=${CHAT_PORT} --workers 4 --timeout-keep-alive 120 --log-level info
|
|
networks:
|
|
- freeleaps2-network
|
|
backend:
|
|
container_name: freeleaps2-backend
|
|
build:
|
|
context: ${BACKEND_HOME}
|
|
args:
|
|
CONTAINER_APP_ROOT: ${CONTAINER_APP_ROOT}
|
|
profiles: [ prod, alpha ]
|
|
restart: always
|
|
environment:
|
|
- CERT_PATH=/app/certs
|
|
- EMAIL_FROM=${EMAIL_FROM}
|
|
- MONGODB_URI=${MONGODB_URI}
|
|
- MONGODB_NAME=freeleaps2
|
|
- STRIPE_API_KEY=${STRIPE_API_KEY}
|
|
- STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
|
|
- STRIPE_ACCOUNT_WEBHOOK_SECRET=${STRIPE_ACCOUNT_WEBHOOK_SECRET}
|
|
- SITE_URL_ROOT=${SITE_URL_ROOT}
|
|
- JWT_SECRET_KEY=${JWT_SECRET_KEY}
|
|
- FREELEAPS_CHAT_ENDPOINT=${FREELEAPS_CHAT_ENDPOINT}
|
|
- RABBITMQ_HOST=${RABBITMQ_HOSTNAME}
|
|
- RABBITMQ_PORT=${RABBITMQ_PORT}
|
|
- LOG_BASE_PATH=${LOG_BASE_PATH}
|
|
- BACKEND_LOG_FILE_NAME=${BACKEND_LOG_FILE_NAME}
|
|
- APPLICATION_ACTIVITY_LOG=${APPLICATION_ACTIVITY_LOG}
|
|
- USER_ACTIVITY_LOG=${USER_ACTIVITY_LOG}
|
|
- BACKEND_PORT=${BACKEND_PORT}
|
|
- FREELEAPS_ENV=${FREELEAPS_ENV}
|
|
- FREELEAPS_DEVSVC_ENDPOINT=${FREELEAPS_DEVSVC_ENDPOINT}
|
|
- FREELEAPS_CONTENT_ENDPOINT=${FREELEAPS_CONTENT_ENDPOINT}
|
|
- FREELEAPS_PAYMENT_ENDPOINT=${FREELEAPS_PAYMENT_ENDPOINT}
|
|
- FREELEAPS_CENTRAL_STORAGE_ENDPOINT=${FREELEAPS_CENTRAL_STORAGE_ENDPOINT}
|
|
- FREELEAPS_AUTHENTICATION_ENDPOINT=${FREELEAPS_AUTHENTICATION_ENDPOINT}
|
|
- CERT_PATH=${CERT_PATH}
|
|
- KAFKA_SERVER_URL=${KAFKA_SERVER_URL}
|
|
ports:
|
|
- ${BACKEND_PORT}:${BACKEND_PORT}
|
|
command:
|
|
# Use a conditional check for RabbitMQ in alpha profile
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
if [[ \"${RABBITMQ_HOST}\" == 'freeleaps2-rabbitmq' ]]; then
|
|
while ! nc -z freeleaps2-rabbitmq ${RABBITMQ_PORT}; do
|
|
echo "Waiting for RabbitMQ to start..."
|
|
sleep 1
|
|
done
|
|
echo "RabbitMQ started"
|
|
fi
|
|
uvicorn freeleaps.webapi.main:app --host=0.0.0.0 --port=${BACKEND_PORT} --workers 4 --timeout-keep-alive 120 --log-level info
|
|
networks:
|
|
- freeleaps2-network
|
|
volumes:
|
|
- /secure/certs:/app/certs
|
|
- type: bind
|
|
source: $DOCKER_BACKEND_LOG_HOME
|
|
target: $LOG_BASE_PATH
|
|
|
|
volumes:
|
|
freeleaps2-mongodb-data:
|
|
freeleaps2-rabbitmq-data:
|
|
|
|
|
|
networks:
|
|
freeleaps2-network:
|
|
driver: bridge
|