version: '3.8' services: strapi: build: context: ./server dockerfile: Dockerfile container_name: strapi-app restart: unless-stopped ports: - "1337:1337" env_file: - docker-compose.env environment: DATABASE_CLIENT: ${DATABASE_CLIENT} DATABASE_HOST: ${DATABASE_HOST} DATABASE_PORT: ${DATABASE_PORT} DATABASE_NAME: ${DATABASE_NAME} DATABASE_USERNAME: ${DATABASE_USERNAME} DATABASE_PASSWORD: ${DATABASE_PASSWORD} DATABASE_SSL: ${DATABASE_SSL} NODE_ENV: ${NODE_ENV} JWT_SECRET: ${JWT_SECRET} ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET} APP_KEYS: ${APP_KEYS} API_TOKEN_SALT: ${API_TOKEN_SALT} TRANSFER_TOKEN_SALT: ${TRANSFER_TOKEN_SALT} volumes: - ./server/public/uploads:/opt/app/public/uploads - ./server/.tmp:/opt/app/.tmp depends_on: - postgres networks: - strapi-network client: build: context: ./client dockerfile: Dockerfile container_name: astro-client restart: unless-stopped ports: - "4321:4321" env_file: - docker-compose.env environment: NODE_ENV: ${CLIENT_NODE_ENV} STRAPI_URL: ${STRAPI_URL} volumes: - ./client/src:/opt/app/src - ./client/public:/opt/app/public - ./client/astro.config.mjs:/opt/app/astro.config.mjs - ./client/tsconfig.json:/opt/app/tsconfig.json depends_on: - strapi - postgres networks: - strapi-network postgres: image: postgres:15-alpine container_name: strapi-postgres restart: unless-stopped env_file: - docker-compose.env environment: POSTGRES_DB: ${DATABASE_NAME} POSTGRES_USER: ${DATABASE_USERNAME} POSTGRES_PASSWORD: ${DATABASE_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" networks: - strapi-network volumes: postgres_data: networks: strapi-network: driver: bridge