我一直在docker
PHP开发环境中工作,最后我可以根据需要进行工作。该环境依赖于docker-compose
该配置,如下所示:
version: '2'
services:
php-apache:
env_file:
- dev_variables.env
image: reynierpm/php55-dev
build:
context: .
args:
- PUID=1000
- PGID=1000
ports:
- "80:80"
extra_hosts:
- "dockerhost:xxx.xxx.xxx.xxx"
volumes:
- ~/var/www:/var/www
有一些类似的配置extra_hosts
,env-file
这让我有些头疼。为什么?因为我不知道该图像在这种情况下是否可以工作。
让我们说:
docker-compose up -d
并且reynierpm/php55-dev
带有标签的图像latest
已构建docker-compose.yml
文件上设置适当的值docker push reynierpm/php55-dev
如果明天您克隆存储库并尝试运行docker-compose up
但更改docker-compose.yml
文件以适合您的设置,会发生什么情况?在这种情况下图像的表现如何?我的意思是创建映像/将映像上传到Docker Hub是有意义的,如果我运行命令的任何时间docker-compose up
由于配置文件上的更改而将再次生成该映像?
也许我做错了,幕后发生了一些魔术,但我需要知道我是否做对了
如果人们克隆了您的git仓库并执行了docker-compose up -d
它,则实际上会建立一个新映像。如果只希望人们使用来自docker hub的图像,请删除docker-compose.yml的build部分并将其发布在docker hub页面中。选中此选项,您可以看到建议的docker-compose.yml。
只需将其粘贴到您的页面中即可:
version: '2'
services:
php-apache:
image: reynierpm/php55-dev
ports:
- "80:80"
environment:
DOCKERHOST: 'yourhostip'
PHP_ERROR_REPORTING: 'E_ALL & ~E_DEPRECATED & ~E_NOTICE'
volumes:
- ~/var/www:/var/www
如果您的env_file仅包含几个变量,则最好直接在Dockerfile中显示它们。最好用环境变量替换extra_hosts,然后在php.ini中或通过变量在任何地方使用额外主机的地方进行更改:
.....
xdebug.remote_host = ${DOCKERHOST}
.....
您可以在Dockerfile中为此变量定义一个默认值:
ENV DOCKERHOST=localhost
希望能帮助到你
问候
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句