我想从 bitbucket 管道将容器组部署到 Azure 容器实例。我有以下
bitbucket-pipelines.yml
文件:
image: ubuntu:20.04
clone:
depth: 5
options:
max-time: 15
pipelines:
branches:
master:
- step:
name: Deploy to aci
deployment: test
script:
- apt-get update
- apt-get install curl -y
- curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sh
- curl -sSL https://github.com/docker/compose-cli/releases/download/v2.0.0-beta.3/docker-compose-linux-amd64 -o docker-compose
- chmod +x docker-compose
- mkdir -p ~/.docker/cli-plugins
- mv docker-compose ~/.docker/cli-plugins/docker-compose
- docker login azure --client-id $CLIENTID --tenant-id $TENANTID --client-secret $SECRET
- docker login myregistry.azurecr.io -u $USERNAME -p $PASS
- docker context create aci myContext --subscription-id "00000000-0000-0000-0000-000000000000" --resource-group "myResouceGroup" --location "westeurope"
- docker --context myContext compose up
services:
- docker
我在
docker --context myContext compose up
命令上收到以下错误:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
所有其他 docker 命令似乎都在工作,因此 docker-compose cli 似乎有问题,它找不到守护程序正在运行。
我尝试在
export DOCKER_HOST="tcp://0.0.0.0:2375"
之前添加 docker compose up
但没有帮助。
我有什么遗漏的吗?
更新1:
如果我更新最后一个命令:
- docker --context myContext compose up
致:
- docker context use myContext
- docker compose up
我收到不同的错误:
failed to dial gRPC: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing unable to upgrade to h2c, received 403"
更新2
添加了
docker version
和 docker ps
以获取更多信息。输出:
docker version
Client: Docker Engine - Community
Cloud integration: 1.0.17
Version: 19.03.15
API version: 1.40
...
Server: Docker Engine - Community
Engine:
Version: 20.10.5
API version: 1.41 (minimum version 1.12)
...
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker守护进程是否正在运行?是s.o权限、docker-in-docker等引起的常见错误。而且这个错误与docker-compose无关。
在您的情况下,您正在 docker 容器内执行 docker 命令,因此请尝试将其添加到管道的开头:
options:
docker: true
检查这些解决方案是否存在docker守护进程正在运行?错误:
我还建议在使用 docker-compose 配置的 docker 上下文之前尝试使用基本 docker 命令(简单构建或运行)。例如,当执行以下命令之一时,许多用户会通知相同的错误(docker 守护进程正在运行吗?):
对于所有在搜索时只找到此链接的可怜的灵魂
failed to get status: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing unable to upgrade to h2c, received 403"
解决方案是添加步骤
export DOCKER_BUILDKIT=0
开始之前
docker compose up