version: '3' services: shlink_nginx: container_name: shlink_nginx image: nginx:1.17.10-alpine ports: - "8000:80" volumes: - ./:/home/shlink/www - ./docs:/home/shlink/www/public/docs - ./data/infra/vhost.conf:/etc/nginx/conf.d/default.conf links: - shlink_php shlink_php: container_name: shlink_php build: context: . dockerfile: ./data/infra/php.Dockerfile volumes: - ./:/home/shlink/www - ./data/infra/php.ini:/usr/local/etc/php/php.ini links: - shlink_db - shlink_db_postgres - shlink_db_maria - shlink_db_ms - shlink_redis - shlink_mercure - shlink_mercure_proxy environment: LC_ALL: C shlink_swoole_proxy: container_name: shlink_swoole_proxy image: nginx:1.17.10-alpine ports: - "8002:80" volumes: - ./:/home/shlink/www - ./data/infra/swoole_proxy_vhost.conf:/etc/nginx/conf.d/default.conf links: - shlink_swoole shlink_swoole: container_name: shlink_swoole build: context: . dockerfile: ./data/infra/swoole.Dockerfile ports: - "8080:8080" - "9001:9001" volumes: - ./:/home/shlink - ./data/infra/php.ini:/usr/local/etc/php/php.ini links: - shlink_db - shlink_db_postgres - shlink_db_maria - shlink_db_ms - shlink_redis - shlink_mercure - shlink_mercure_proxy environment: LC_ALL: C shlink_db: container_name: shlink_db image: mysql:5.7 ports: - "3307:3306" volumes: - ./:/home/shlink/www - ./data/infra/database:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: shlink shlink_db_postgres: container_name: shlink_db_postgres image: postgres:12.2-alpine ports: - "5433:5432" volumes: - ./:/home/shlink/www - ./data/infra/database_pg:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: root POSTGRES_DB: shlink PGDATA: /var/lib/postgresql/data/pgdata shlink_db_maria: container_name: shlink_db_maria image: mariadb:10.5 ports: - "3308:3306" volumes: - ./:/home/shlink/www - ./data/infra/database_maria:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: shlink MYSQL_INITDB_SKIP_TZINFO: 1 shlink_db_ms: container_name: shlink_db_ms image: mcr.microsoft.com/mssql/server:2019-latest ports: - "1433:1433" environment: ACCEPT_EULA: Y SA_PASSWORD: "Passw0rd!" shlink_redis: container_name: shlink_redis image: redis:6.0-alpine ports: - "6380:6379" shlink_mercure_proxy: container_name: shlink_mercure_proxy image: nginx:1.17.10-alpine ports: - "8001:80" volumes: - ./:/home/shlink/www - ./data/infra/mercure_proxy_vhost.conf:/etc/nginx/conf.d/default.conf links: - shlink_mercure shlink_mercure: container_name: shlink_mercure image: dunglas/mercure:v0.10 ports: - "3080:80" environment: CORS_ALLOWED_ORIGINS: "*" JWT_KEY: "mercure_jwt_key" USE_FORWARDED_HEADERS: "1"