使用docker--在构建图像时在docker compose中挤压
在构建新的docker图像时,是否有方法使用docker compose中的-squash选项?现在他们已经在6个月前在docker中实现了-squash,但是我还没有看到任何关于如何在docker-compose.yml中使用它的文档 这附近有工作吗?我看到一个公开发行的文件请求这个而不是使用-squash,你可以使用 下面是一个使用Django web框架的Python应用程序的简单示例。我们希望将测试依赖项分离到不同的映像中,这样就不会将测试依赖项部署到生产环境中。此外,我们希望将自动化文档实用程序与测试实用程序分开 以下是Dockerfile: 为了使用此文件构建不同的图像,我们需要docker build的-target标志。-target参数应在Dockerfile中的AS关键字后命名图像的名称 构建基本映像: docker build-目标库-标记库 构建测试映像: docker构建-目标测试-标记测试 构建文档映像: docker构建-目标文档-标记文档 这使您可以构建从同一基础映像分支的映像,这可以显著缩短较大映像的构建时间 您还可以在Docker Compose中使用多阶段构建。从docker-compose.yml的3.4版开始,您可以在YAML中使用target关键字 以下是引用上述docker文件的docker-compose.yml文件:使用docker--在构建图像时在docker compose中挤压,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,在构建新的docker图像时,是否有方法使用docker compose中的-squash选项?现在他们已经在6个月前在docker中实现了-squash,但是我还没有看到任何关于如何在docker-compose.yml中使用它的文档 这附近有工作吗?我看到一个公开发行的文件请求这个而不是使用-squash,你可以使用 下面是一个使用Django web框架的Python应用程序的简单示例。我们希望将测试依赖项分离到不同的映像中,这样就不会将测试依赖项部署到生产环境中。此外,我们希望将自动化文
如果使用此docker-compose.yml运行docker compose build,它将在Dockerfile中生成测试和文档映像。与任何其他docker-compose.yml一样,您还可以添加端口、环境变量、运行时命令等。您可以使用类似技巧的方法实现挤压效果
FROM oracle AS needs-squashing
ENV NEEDED_VAR some_value
COPY ./giant.zip ./somewhere/giant.zip
RUN echo "install giant in zip"
RUN rm ./somewhere/giant.zip
FROM scratch
COPY --from=needs-squashing / /
不幸的是,由于这个请求,他们打算从docker中完全删除这个特性。请注意,当您这样做时,您将丢失环境设置、入口点定义和其他元数据,您复制的只是文件系统。
version: '3.4'
services:
testing:
build:
context: .
target: testing
documentation:
build:
context: .
target: documentation
FROM oracle AS needs-squashing
ENV NEEDED_VAR some_value
COPY ./giant.zip ./somewhere/giant.zip
RUN echo "install giant in zip"
RUN rm ./somewhere/giant.zip
FROM scratch
COPY --from=needs-squashing / /