【发布时间】:2021-04-10 14:31:28
【问题描述】:
我不明白将 docker 服务部署到生产环境的最佳方式是什么?
我的撰写文件:
services:
app:
container_name: "barbut"
restart: always
build: ./app
depends_on:
- redis
- mongo
ports:
- 3000:3000
- 9229:9229
links:
- redis
- mongo
volumes:
- ./app/:/usr/src/app
- /usr/src/app/node_modules
command: bash -c "/usr/wait-for-it.sh --timeout=0 mongo:27017 && pm2-dev start ecosystem.config.js"
redis:
container_name: barbutRedis
command: ["redis-server", "--bind", "redis", "--port", "6379"]
image: redis
ports:
- "6379:6379"
redis-commander:
container_name: redis-commander
hostname: redis-commander
image: rediscommander/redis-commander:latest
restart: always
environment:
- REDIS_HOSTS=local:redis:6379
ports:
- "8081:8081"
mongo:
container_name: barbutMongo
image: mongo
ports:
- "27017:27017"
volumes:
- mongoData:/data/db
nginx:
container_name: barbutNginx
restart: always
build:
context: ./nginx
ports:
- "80:80"
volumes:
mongoData:
下一步是什么?我想我需要构建这个图像,然后将它上传到 Docker 集线器,然后将这个图像拉到我的服务器并再次构建。但我不明白我该怎么做。
【问题讨论】:
-
有很多 Compose 选项会在生产环境中造成困难(尤其是
volumes:,command:也覆盖)或者只是不必要的(container_name:,hostname:,links:)。一个好的开始是删除所有这些选项,让堆栈在没有它们的情况下工作。
标签: docker docker-compose