gpt4 book ai didi

Docker 撰写 : How to use existing image but install additional modules

转载 作者:行者123 更新时间:2023-12-02 10:17:56 25 4
gpt4 key购买 nike

我使用了一个非常简单的 docker 设置,其中包括 docker-compose 和 docker-sync。我有以下文件:

docker-compose-dev.yml

version: "2"
services:
apache:
volumes:
- ./docker-config/vhost:/etc/apache2/sites-enabled/000-default.conf
- rr-sync:/var/www/html:nocopy # nocopy is important

volumes:
rr-sync:
external: true

docker-compose.yml

version: '2'
services:
apache:
image: bylexus/apache-php7
ports:
- 80:80

db:
image: orchardup/mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: rr

docker-sync.yml

version: "2"

options:
verbose: true
syncs:
rr-sync: # tip: add -sync and you keep consistent names as a convention
src: './src'
sync_excludes: ['.git']

我使用的镜像是bylexus/apache-php7,它不支持curl,我也没有在容器中安装像vim这样的工具。

问题是,我如何安装curl和vim,但继续使用这个图像用于apache?我需要在上面的文件中更改哪些内容?

谢谢。

最佳答案

将您自己的 Dockerfile 添加到基于您所需的基础镜像构建的项目中。在此文件中,添加您自己的包(例如,curl 和 vim):

FROM bylexus/apache-php7

RUN apt-get install -y curl vim

然后,在您的 docker-compose.yml 文件中,不要使用 image 属性,而是使用 build property ,而是:

version: '2'
services:
apache:
build: .
ports:
- 80:80

<小时/> 免责声明:当然,添加新包的具体方法取决于基础镜像。例如,本例中的 bylexus/apache-php7 镜像是基于 ubuntu:16.10 镜像构建的(如 respective Dockerfile 中所示),因此您可以使用Ubuntu的包管理工具。除 bylexus/apache-php7 之外的镜像可能会使用其他基础发行版和其他包管理器)。

关于Docker 撰写 : How to use existing image but install additional modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48117791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com