构建映像并将其上传到Docker Hub,如何从Docker Compose进行镜像?

雷尼埃

我一直在dockerPHP开发环境中工作,最后我可以根据需要进行工作。该环境依赖于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_hostsenv-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由于配置文件上的更改而将再次生成该映像

也许我做错了,幕后发生了一些魔术,但我需要知道我是否做对了

卡洛斯·拉斐尔·拉米雷斯(Carlos Rafael Ramirez)

如果人们克隆了您的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

构建 docker 镜像 (.NET Core) 并将其上传到 Google Container Engine?

我如何在 github 上修改这个 docker 镜像,然后将它作为 docker 镜像上传到 docker hub

如何访问私有 docker hub 镜像?

如何上传Project + Dockerfile并在AWS上构建而不是在本地构建并将Docker映像上传到ECS?

如何推送标签与 docker hub 存储库不同的 docker 镜像?

如何使用rabbitmq docker compose yml文件构建Docker镜像?

Docker hub 的官方 ruby 镜像是如何创建的?

构建多个 Docker 镜像并将其部署到 kubernetes

如何在使用git的同时构建docker-compose镜像?

使用Docker Hub时如何强制docker-compose下载新映像?

如何在 docker 镜像中进行开发

如何在docker-compose中使用本地Docker镜像?

如何使用Docker Hub在特定架构上构建Docker映像?

如何在 Jenkins 上对 Docker 映像进行版本控制并将其传递给 Kubernetes YAML 文件

docker-compose何时构建本地映像,何时从docker hub提取?

如何强制Docker进行映像的干净构建

如何将Dockerfile转换为Docker Compose镜像?

是否可以将docker hub公共托管映像部署到Kubernetes Container Engine而不将其上传到Containers Registery?

使用 docker-compose 构建 docker 镜像并推送到镜像/容器注册表?

docker-compose.yml覆盖删除镜像构建

如何创建docker映像,然后将其上传到我的存储库?

Podman 从 docker hub 拉取“官方”镜像?

使用 github-action 构建镜像并推送到 docker hub

使用不共存的镜像进行 Docker 多阶段构建

docker-compose 构建中的重复图像。如何将 docker-compose.yml 的两个服务正确推送到 Docker hub 注册表?

Docker Compose如何通过构建扩展服务以使用映像

如何使docker-compose从远程git存储库构建映像?

尝试从Minikube上的docker hub拉/运行docker镜像失败

Docker 不从 Mac OS 上的 Docker Hub 拉取镜像