diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..6a52f86 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,125 @@ +version: "2.2" + +services: + app: + image: xf/drugs:prod + container_name: drugs + build: + context: . + args: + OPERATION: ${OPERATION} + volumes: + - ${REPO_DIR}:/code + - ${REPO_DIR}/docker/uwsgi.ini:/conf/uwsgi.ini + - ${APP_DATABASE_FILE}:/conf/db.sqlite3 + - app_static:${STATIC_ROOT} + #ports: + # - "8000:8000" # uwsgi socket + env_file: + - /opt/containers/drugs/stack.env + # volumes_from: + # - tmp + depends_on: + # redis: + # condition: service_healthy + migration: + condition: service_started + collectstatic: + condition: service_started + networks: + - default + - xf + + migration: + image: xf/drugs:prod + container_name: migration_drugs + build: + context: . + args: + OPERATION: ${OPERATION} + command: sh -c '. /venv/bin/activate && python manage.py migrate --noinput' + volumes: + - ${REPO_DIR}:/code + - ${REPO_DIR}/docker/uwsgi.ini:/conf/uwsgi.ini + - ${APP_DATABASE_FILE}:/conf/db.sqlite3 + - app_static:${STATIC_ROOT} + # volumes_from: + # - tmp + env_file: + - /opt/containers/drugs/stack.env + + collectstatic: + image: xf/drugs:prod + container_name: collectstatic_drugs + build: + context: . + args: + OPERATION: ${OPERATION} + command: sh -c '. /venv/bin/activate && python manage.py collectstatic --noinput' + volumes: + - ${REPO_DIR}:/code + - ${APP_DATABASE_FILE}:/conf/db.sqlite3 + - app_static:${STATIC_ROOT} + # volumes_from: + # - tmp + env_file: + - /opt/containers/drugs/stack.env + + nginx: + image: nginx:latest + container_name: nginx_drugs + ports: + - ${APP_PORT}:9999 + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + volumes: + - ${REPO_DIR}:/code + - ${REPO_DIR}/docker/nginx/conf.d/${OPERATION}.conf:/etc/nginx/conf.d/default.conf + - app_static:${STATIC_ROOT} + # volumes_from: + # - tmp + networks: + - default + - xf + depends_on: + app: + condition: service_started + + # tmp: + # image: busybox + # container_name: tmp_drugs + # command: chmod -R 777 /var/run/socks + # volumes: + # - /var/run/socks + + # redis: + # image: redis + # command: redis-server /etc/redis.conf + # ulimits: + # nproc: 65535 + # nofile: + # soft: 65535 + # hard: 65535 + # volumes: + # - ${REPO_DIR}/docker/redis.conf:/etc/redis.conf + # - redis_data:/data + # volumes_from: + # - tmp + # healthcheck: + # test: "redis-cli -s /var/run/socks/redis.sock ping" + # interval: 2s + # timeout: 2s + # retries: 15 + +networks: + default: + driver: bridge + xf: + external: true + +volumes: + app_static: {} + # redis_data: {}