forked from containerize-my-server/ghost-mysql
-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.yml
64 lines (57 loc) · 1.67 KB
/
docker-compose.yml
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
55
56
57
58
59
60
61
62
63
64
version: '2'
services:
# A machine for running https://ghost.org
ghost:
build: ghost/
labels:
# Configure reverse-proxy to forward to this machine
- "traefik.enable=true"
- "traefik.backend=ghost_${BLOG_DOMAIN}"
- "traefik.frontend.rule=Host:${BLOG_DOMAIN}"
- "traefik.docker.network=reverseproxy_default"
networks:
# Must be in the same network as the reverse-proxy
# (see https://github.com/docker-compose-examples/reverse-proxy)
- "reverseproxy_default"
# Must also be in the same network as mysql
- "ghost_mysql_default"
restart: always
environment:
BLOG_DOMAIN: "${BLOG_DOMAIN}"
NODE_ENV: "${NODE_ENV}"
MYSQL_PASSWORD: "${MYSQL_GHOST_PASSWORD}"
volumes:
- ghost-data:/var/lib/ghost
- ./${CUSTOM_THEME_DIR}:/var/lib/ghost/themes/custom-theme
# MySQL as storage backend
mysql:
build: mysql/
networks:
- "ghost_mysql_default"
environment:
MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
MYSQL_DATABASE: ghost_db
MYSQL_USER: ghost
MYSQL_PASSWORD: "${MYSQL_GHOST_PASSWORD}"
volumes:
- data:/var/lib/mysql
# Container to run npm_install at startup
# e.g. in order to install custom theme
npm_install:
build: npm_install/
volumes:
- .:/project
working_dir: /project
command: "npm install"
volumes:
# MySQL storage (blog content)
data: {}
# Storage for themes e.g. (except custom-theme)
ghost-data: {}
networks:
# Local network
ghost_mysql_default: {}
# Shared network (created by https://github.com/docker-compose-examples/reverse-proxy)
reverseproxy_default:
external:
name: reverseproxy_default