init
This commit is contained in:
128
docker-compose.yml
Normal file
128
docker-compose.yml
Normal file
@@ -0,0 +1,128 @@
|
||||
version: '3.4'
|
||||
|
||||
x-cache:
|
||||
&cache
|
||||
cache_from:
|
||||
- ${CONTAINER_REGISTRY_BASE}/php
|
||||
- ${CONTAINER_REGISTRY_BASE}/nginx
|
||||
- ${CONTAINER_REGISTRY_BASE}/varnish
|
||||
|
||||
services:
|
||||
php:
|
||||
image: ${CONTAINER_REGISTRY_BASE}/php
|
||||
build:
|
||||
context: ./api
|
||||
target: api_platform_php
|
||||
<<: *cache
|
||||
depends_on:
|
||||
- db
|
||||
# Comment out these volumes in production
|
||||
volumes:
|
||||
- ./api:/srv/api:rw,cached
|
||||
# If you develop on Linux, uncomment the following line to use a bind-mounted host directory instead
|
||||
# - ./api/var:/srv/api/var:rw
|
||||
|
||||
api:
|
||||
image: ${CONTAINER_REGISTRY_BASE}/nginx
|
||||
build:
|
||||
context: ./api
|
||||
target: api_platform_nginx
|
||||
<<: *cache
|
||||
depends_on:
|
||||
- php
|
||||
# Comment out this volume in production
|
||||
volumes:
|
||||
- ./api/public:/srv/api/public:ro
|
||||
ports:
|
||||
- "8080:80"
|
||||
|
||||
cache-proxy:
|
||||
image: ${CONTAINER_REGISTRY_BASE}/varnish
|
||||
build:
|
||||
context: ./api
|
||||
target: api_platform_varnish
|
||||
<<: *cache
|
||||
depends_on:
|
||||
- api
|
||||
volumes:
|
||||
- ./api/docker/varnish/conf:/usr/local/etc/varnish:ro
|
||||
tmpfs:
|
||||
- /usr/local/var/varnish:exec
|
||||
ports:
|
||||
- "8081:80"
|
||||
|
||||
db:
|
||||
# In production, you may want to use a managed database service
|
||||
image: postgres:10-alpine
|
||||
environment:
|
||||
- POSTGRES_DB=api
|
||||
- POSTGRES_USER=api-platform
|
||||
# You should definitely change the password in production
|
||||
- POSTGRES_PASSWORD=!ChangeMe!
|
||||
volumes:
|
||||
- db-data:/var/lib/postgresql/data:rw
|
||||
# You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
|
||||
# - ./docker/db/data:/var/lib/postgresql/data:rw
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
mercure:
|
||||
# In production, you may want to use the managed version of Mercure, https://mercure.rocks
|
||||
image: dunglas/mercure
|
||||
environment:
|
||||
# You should definitely change all these values in production
|
||||
- JWT_KEY=!UnsecureChangeMe!
|
||||
- ALLOW_ANONYMOUS=1
|
||||
- CORS_ALLOWED_ORIGINS=*
|
||||
- PUBLISH_ALLOWED_ORIGINS=http://localhost:1337,https://localhost:1338
|
||||
- DEMO=1
|
||||
ports:
|
||||
- "1337:80"
|
||||
|
||||
client:
|
||||
# Use a static website hosting service in production
|
||||
# See https://facebook.github.io/create-react-app/docs/deployment
|
||||
image: ${CONTAINER_REGISTRY_BASE}/client
|
||||
build:
|
||||
context: ./client
|
||||
cache_from:
|
||||
- ${CONTAINER_REGISTRY_BASE}/client
|
||||
env_file:
|
||||
- ./client/.env
|
||||
volumes:
|
||||
- ./client:/usr/src/client:rw,cached
|
||||
- /usr/src/client/node_modules
|
||||
ports:
|
||||
- "80:3000"
|
||||
|
||||
admin:
|
||||
# Use a static website hosting service in production
|
||||
# See https://facebook.github.io/create-react-app/docs/deployment
|
||||
image: ${CONTAINER_REGISTRY_BASE}/admin
|
||||
build:
|
||||
context: ./admin
|
||||
cache_from:
|
||||
- ${CONTAINER_REGISTRY_BASE}/admin
|
||||
volumes:
|
||||
- ./admin:/usr/src/admin:rw,cached
|
||||
- /usr/src/admin/node_modules
|
||||
ports:
|
||||
- "81:3000"
|
||||
|
||||
h2-proxy:
|
||||
# Don't use this proxy in prod
|
||||
build:
|
||||
context: ./h2-proxy
|
||||
depends_on:
|
||||
- client
|
||||
- admin
|
||||
- api
|
||||
- cache-proxy
|
||||
ports:
|
||||
- "443:443"
|
||||
- "444:444"
|
||||
- "8443:8443"
|
||||
- "8444:8444"
|
||||
|
||||
volumes:
|
||||
db-data: {}
|
||||
Reference in New Issue
Block a user