问题是我在开发和生产中使用了相同的docker-compose.yml文件。
应用程序服务未指定存储库名称或标签,因此当我
docker-composeup在服务器上运行时,它只是尝试在应用程序的源代码目录(服务器上不存在)中构建Dockerfile。
我最终通过在本地docker-compose.yml中添加显式图像字段解决了问题。
version: '2'services: web: image: 'my-private-docker-registry:latest' build: ./app
然后创建用于生产的替代撰写文件:
version: '2'services: web: image: 'my-private-docker-registry:latest' # no build field!
在
docker-compose build本地运行后,将使用存储库名称
my-private-docker-registry和标记构建Web服务映像
latest。
这只是将映像推送到存储库的一种情况。
docker push 'my-private-docker-registry:latest'
在运行时
docker pull,可以安全地停止并使用新映像重新创建正在运行的容器。



