blob: 65895dfec0acef3a16fad5bc92de398219ca359d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
## Template compose used for each stack.
name: ${_STACK_X} # Explicit project name (do not rely on directory name)
networks:
net:
name: ${_NET_X}
external: true # All networks SHOULD be external in production.
net2:
name: ${_NET_Y}
external: true
volumes:
data:
name: ${_VOLUME_X} # Naming Convention: _[PURPOSE]_VOLUME
external: true # All volumes SHOULD be external in production.
config:
name: ${_VOLUME_Y}
external: true
custom:
name: ${_VOLUME_Z} # Custom volumes may not be external depending on the stack.
# External volumes are not required for local stack testing.
services:
servicename:
container_name: ${_CONTAINER_X} # Explicitly named containers.
image: ${_IMAGE_X}
restart: unless-stopped
env_file:
# NOTE: .compose.env WILL override .env if there are overlapping values.
- .compose.env # Compose wiring defaults go here
- .env # Service env vars
# Uncomment if bind mounting should not belong to root
# UID and GID MUST be set in .env
# user: '${UID}:${GID}'
volumes:
# Directory Bind Mounting
# - ./conf:/etc/service:ro
# External Docker Volume Mount
- type: volume
source: data # Must exist if external; overridden in local dev
target: /data
- type: volume
source: config # Must exist if external; overridden in local dev
target: /config
- type: volume
source: custom # Must exist if external; overridden in local dev
target: /custom
networks:
- net
expose:
- 80
- 9001
- 67
|