gpt4 book ai didi

docker - 如何使用 docker-compose 构建 Dockerfiles?

转载 作者:行者123 更新时间:2023-12-05 00:55:01 24 4
gpt4 key购买 nike

我有这样的结构:

enter image description here

在我的 Makefile 中,我构建了 dockerfile:

sudo docker build --build-arg PHP_VERSION=7.4 -t kaiza/image-php74 - < dockerfile/Dockerfile.php

并且 kaiza/image-php74 在本地创建得很好,如果我这样做 docker images,我会得到:

enter image description here

然后,在我的 docker-compose.php74.yml 中:

version: '2.4'

services:
php7.4:
image: "kaiza/image-php74"
container_name: "kz-php74"
hostname: "kz-php74"
user: 1000:1000
...

但是,当我运行它时

docker-compose -f docker-compose/php/docker-compose.php74.yml up --build -d

我收到此错误:

“对 kaiza/image-php74 的拉取访问被拒绝,存储库不存在或可能需要 'docker login':拒绝:请求的资源访问被拒绝”

任何人知道如何在不通过 registry 解决方案的情况下解决此问题(将所有内容都保留在本地)?

谢谢。

最佳答案

docker-compose 可用作构建 Dockerfile 的工作流程的一部分。

安排这个的一个好方法是在根目录中有一个 docker-compose.yml,然后为每个服务有一个子文件夹。

docker-compose.yml

version: "3.8"

services:
php7.4:
image: kaiza/image-php74:latest
build:
context: php74
dockerfile: Dockerfile
args:
PHP_VERSION: ${VERSION-7.3}

假设 docker-compose 到 php74 Dockerfile 的相对路径是 php74/Dockerfile 那么:

docker-compose build php7.4 将构建,并将图像标记为 kaiza/image-php74,docker-compose updocker-compose运行 php7.4 会根据需要构建镜像,或者使用本地构建的镜像(如果可用)。

构建部分的完整引用可在 github 上获得

关于docker - 如何使用 docker-compose 构建 Dockerfiles?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65560269/

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