Skip to content

Commit

Permalink
Isolate internal services from external networks in Docker configurat…
Browse files Browse the repository at this point in the history
…ion (#6369)

The database and Redis do not need external connections, so isolate them
and prevent unauthorized access.
  • Loading branch information
akihikodaki authored and Gargron committed Feb 3, 2018
1 parent d75d2a9 commit 9da81a1
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions docker-compose.yml
Expand Up @@ -4,13 +4,17 @@ services:
db:
restart: always
image: postgres:9.6-alpine
networks:
- internal_network
### Uncomment to enable DB persistance
# volumes:
# - ./postgres:/var/lib/postgresql/data

redis:
restart: always
image: redis:4.0-alpine
networks:
- internal_network
### Uncomment to enable REDIS persistance
# volumes:
# - ./redis:/data
Expand All @@ -21,6 +25,9 @@ services:
restart: always
env_file: .env.production
command: bundle exec rails s -p 3000 -b '0.0.0.0'
networks:
- external_network
- internal_network
ports:
- "3000:3000"
depends_on:
Expand All @@ -37,6 +44,9 @@ services:
restart: always
env_file: .env.production
command: npm run start
networks:
- external_network
- internal_network
ports:
- "4000:4000"
depends_on:
Expand All @@ -52,6 +62,14 @@ services:
depends_on:
- db
- redis
networks:
- external_network
- internal_network
volumes:
- ./public/packs:/mastodon/public/packs
- ./public/system:/mastodon/public/system

networks:
external_network:
internal_network:
internal: true

0 comments on commit 9da81a1

Please sign in to comment.