41 lines
1.1 KiB
YAML
41 lines
1.1 KiB
YAML
services:
|
|
mongo:
|
|
image: mongo
|
|
ports:
|
|
- '27017:27017'
|
|
command: mongod --replSet rs0
|
|
setup:
|
|
image: mongo
|
|
depends_on:
|
|
- mongo
|
|
restart: on-failure
|
|
entrypoint: [
|
|
'bash',
|
|
'-c',
|
|
# This will try to initiate the replica set, until it succeeds twice (i.e. until the replica set is already initialized)
|
|
'mongosh --host mongo:27017 --eval ''try {rs.initiate();} catch (err) { if(err.codeName !== "AlreadyInitialized") throw err };'''
|
|
]
|
|
mailhog:
|
|
restart: unless-stopped
|
|
image: mailhog/mailhog
|
|
ports:
|
|
- '1025:1025'
|
|
- '8025:8025'
|
|
api:
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- mongo
|
|
- mailhog
|
|
image: fcc-new-api
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
# The api cannot connect to mongodb or mailhog via localhost from inside the
|
|
# container, so we have to override these variables.
|
|
- MONGOHQ_URL=mongodb://mongo:27017/freecodecamp?directConnection=true
|
|
- MAILHOG_HOST=mailhog
|
|
ports:
|
|
# PORT is used by the new api, so we use the less generic API_PORT to
|
|
# avoid conflicts.
|
|
- '3000:3000'
|