Docker Compose 无法使用 Podman 构建
Docker Compose can not build with Podman
Docker 如果我为服务拉取镜像,compose 将与 podman 一起工作,但在我尝试构建镜像时将不起作用。
Docker文件
FROM docker.io/hello-world
$ docker build --tag uscm5 .
STEP 1: FROM docker.io/hello-world
STEP 2: COMMIT uscm5
--> d1165f22123
Successfully tagged localhost/uscm5:latest
Successfully tagged docker.io/library/hello-world:latest
d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
docker-compose.yml
使用图像配置而不是构建,它工作得很好。
services:
web:
build: .
# image: docker.io/hello-world
$ docker-compose up
Building web
Traceback (most recent call last):
File "docker-compose", line 3, in <module>
File "compose/cli/main.py", line 81, in main
File "compose/cli/main.py", line 203, in perform_command
File "compose/metrics/decorator.py", line 18, in wrapper
File "compose/cli/main.py", line 1186, in up
File "compose/cli/main.py", line 1182, in up
File "compose/project.py", line 664, in up
File "compose/service.py", line 364, in ensure_image_exists
File "compose/service.py", line 1133, in build
File "compose/service.py", line 1943, in build
File "subprocess.py", line 800, in __init__
File "subprocess.py", line 1551, in _execute_child
FileNotFoundError: [Errno 2] No such file or directory: 'docker': 'docker'
[579202] Failed to execute script docker-compose
我的环境和程序版本似乎正确:
$ docker-compose -v && podman -v && lsb_release -r
docker-compose version 1.29.2, build 5becea4c
podman version 3.2.3
Release: 21.04
$ printenv | grep -e DOCKER -e COMPOSE
DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
我错过了什么?
设置 COMPOSE_DOCKER_CLI_BUILD=0
是它的位置 - 谢谢 @Luap99 在 GitHub。 https://github.com/containers/podman/issues/11052
Docker Composes 使用 Docker CLI 而不是 DOCKER_HOST 的套接字。也许我不会注意到如果我有 alias docker=podman
但是 COMPOSE_DOCKER_CLI_BUILD=0
将使用 docker 客户端而不是 CLI。
Docker 如果我为服务拉取镜像,compose 将与 podman 一起工作,但在我尝试构建镜像时将不起作用。
Docker文件
FROM docker.io/hello-world
$ docker build --tag uscm5 .
STEP 1: FROM docker.io/hello-world
STEP 2: COMMIT uscm5
--> d1165f22123
Successfully tagged localhost/uscm5:latest
Successfully tagged docker.io/library/hello-world:latest
d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
docker-compose.yml
使用图像配置而不是构建,它工作得很好。
services:
web:
build: .
# image: docker.io/hello-world
$ docker-compose up
Building web
Traceback (most recent call last):
File "docker-compose", line 3, in <module>
File "compose/cli/main.py", line 81, in main
File "compose/cli/main.py", line 203, in perform_command
File "compose/metrics/decorator.py", line 18, in wrapper
File "compose/cli/main.py", line 1186, in up
File "compose/cli/main.py", line 1182, in up
File "compose/project.py", line 664, in up
File "compose/service.py", line 364, in ensure_image_exists
File "compose/service.py", line 1133, in build
File "compose/service.py", line 1943, in build
File "subprocess.py", line 800, in __init__
File "subprocess.py", line 1551, in _execute_child
FileNotFoundError: [Errno 2] No such file or directory: 'docker': 'docker'
[579202] Failed to execute script docker-compose
我的环境和程序版本似乎正确:
$ docker-compose -v && podman -v && lsb_release -r
docker-compose version 1.29.2, build 5becea4c
podman version 3.2.3
Release: 21.04
$ printenv | grep -e DOCKER -e COMPOSE
DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
我错过了什么?
设置 COMPOSE_DOCKER_CLI_BUILD=0
是它的位置 - 谢谢 @Luap99 在 GitHub。 https://github.com/containers/podman/issues/11052
Docker Composes 使用 Docker CLI 而不是 DOCKER_HOST 的套接字。也许我不会注意到如果我有 alias docker=podman
但是 COMPOSE_DOCKER_CLI_BUILD=0
将使用 docker 客户端而不是 CLI。