Можете ли вы попробовать:
NGINX dockerfile
Изменение:
COPY nginx.conf /etc/nginx/nginx.conf
до
COPY nginx.conf /etc/nginx/nginx.conf.d
Удалите EXPOSE
порты без необходимости выставлять порты.
Создать файл
Обновить составной файл до:
version: "2"
volumes:
mongostorage:
services:
app:
build: ./app
ports:
- "3000:3000"
links:
- mongo
- redis
volumes:
- ./app:/var/www/app
- /var/www/app/node_modules
command: node app.js
adminmongo:
build: ./adminMongo
ports:
- "4455:4455"
links:
- mongo
volumes:
- ./adminMongo:/var/www/adminMongo
- /var/www/adminMongo/node_modules
command: node app.js
admin:
build: ./admin
ports:
- "1123:1123"
links:
- mongo
- redis
volumes:
- ./admin:/var/www/admin
- /var/www/admin/node_modules
command: node admin_app.js
nginx:
build: ./nginx
links:
- app:app
- admin:admin
mongo:
image: mongo:2.4
environment:
- MONGO_DATA_DIR=/data/db
volumes:
- mongostorage:/data/db
ports:
- "27017:27017"
redis:
image: redis
volumes:
- ./data/redis/db:/data/db
ports:
- "6379:6379"
Примечание
Я создал простое приложение узла hello world для тестирования, вам нужно обновить command:
, чтобы оно соответствовало тому, что у вас есть в package.json
Также
Перед запуском приложения выполните следующие команды для очистки любых старых контейнеров / сетей:
docker-compose kill
docker-compose down
docker network prune
docker volume prune
Для запуска сервисов Запустите:
docker-compose build
проб излишним, но убедится, что вы не используете старые контейнеры
docker-compose up --force-recreate
Локальный тестовый выход
mongo_1 | Wed Jul 4 21:50:35.835 [initandlisten] waiting
for connections on port 27017
mongo_1 | Wed Jul 4 21:50:35.835 [websvr] admin web console
waiting for connections on port 28017
app_1 | app listening on port 3000!
admin_1 | admin app listening on port 1123!
adminmongo_1 | AdminMongo app listening on port 4455!
redis_1 | 1:M 04 Jul 21:50:26.523 * Running mode=standalone,
port=6379.