我试图部署一个使用docker-compose构建的应用程序,但感觉完全走错了方向。
- 在本地环境中一切都运行良好——
docker-compose up
命令可以启动我的应用程序,并创建相应的网络和主机。 - 我想在生产环境中使用相同的容器和网络配置,只需要使用不同的
.env
文件即可。
我的当前工作流程大致如下:
docker save [web image] [db image] > containers.tar
zip deploy.zip containers.tar docker-compose.yml
rsync deploy.zip user@server
ssh user@server
unzip deploy.zip ./
docker load -i containers.tar
docker-compose up
此时,我希望当他们到达时能够再次运行docker-compose up
,但这会根据docker-compose.yml
文件尝试重新构建容器。
我有一种明显的感觉,我缺少某些东西。我应该将完整的应用程序发送过去,然后在服务器上构建镜像吗?如果您从注册表中存储/加载图像,该如何启动组合容器?
docker-compose up --build
调用它。我的唯一想法是在你的生产环境中运行docker images
命令,并检查镜像名称和标签是否与docker-compose.yml中的匹配。 - Stratosdocker load
后,docker镜像不再有标签。 - Dan Prince