我最近计划使用docker将我的应用程序部署到服务器。我已经使用docker成功设置了我的开发环境,并与docker-compose纠缠了一段时间。
我的Dockerfile
如下:
FROM alpine
# ...
COPY . /app
和docker-compose.yml
文件如下:
version: '3.7'
services:
host:
build:
dockerfile: .docker/Dockerfile
context: .
volumes:
- .:/app
# ...
现在的问题是:
如果我发出命令docker-compose up -d
,则docker将首先将我的所有文件复制到图像/ app目录(这对于生产而言很重要),然后将我的项目安装到容器/ app中(用于开发)覆盖用于生产的工作。
如果我的项目有1 GB的文件怎么办,我是否要浪费时间等待docker复制所有这些文件而已?
有没有一种方法可以指示Docker如果为开发而构建,则不要复制所有这些文件?还是真的必须针对多个场景(例如测试/分段)制作多个Dockerfile?
如果Dockerfile
中的构建过程非常漫长而又复杂,如果我忘记在Dockerdevelopmentfile
中进行更改,那么更改Dockerproductionfile
这样的话会给生产造成灾难。
如果我需要为我的项目构建5到10张图像,甚至为一家公司为多个项目构建数百张图像,该怎么办?
我认为这不切实际。
请原谅我的天真。 我非常感谢您的一些建议。