docker 创建上下文 ecs 在 github 操作中失败
docker create context ecs fails in github actions
我正在尝试 deploy my docker containers to ECS using docker compose。一切都在本地按预期工作,但是当我尝试在 github 操作工作流程中执行相同操作时,我在尝试 运行 docker create context ecs ecscontext
:
时收到以下错误
"docker context create" requires exactly 1 argument.
我首先假设错误是因为 github 运行ner 上的 docker 和 docker-compose 版本与我本地的不同,所以我卸载了它们并重新安装它们。这是修改后的工作流文件:
name: deploy
on:
workflow_dispatch:
repository_dispatch:
types: [update_stack]
jobs:
deploy:
name: "Deploy stack"
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
AWS_DEFAULT_REGION: us-east-1
steps:
-
name: Update docker version
run: |
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update -y
sudo apt-get install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -y
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
-
name: Update docker-compose version
run: |
sudo rm /usr/local/bin/docker-compose
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
name: check docker new version
run: docker -v
-
name: check docker compose new version
run: docker compose version
-
name: Create ECS docker context
run: sudo docker context create ecs ecscontext --from-env
docker -v
输出与我在本地的输出相同:Docker version 20.10.12, build e91ed57
docker compose version
输出和我本地的一样:Docker Compose version v2.2.3
但它仍然在创建上下文步骤中失败。感谢您的帮助。
事实证明 docker
和 docker-compose
二进制文件无关紧要,我不得不通过 运行 sudo curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sudo sh
更新 docker CLI。新的工作流程如下所示:
name: deploy
on:
workflow_dispatch:
repository_dispatch:
types: [update_stack]
jobs:
deploy:
name: "Deploy stack"
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
AWS_DEFAULT_REGION: us-east-1
steps:
-
name: Update docker-compose version
run: |
sudo curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sudo sh
-
name: check docker new version
run: docker -v
-
name: check docker compose new version
run: docker compose version
-
name: Create ECS docker context
run: sudo docker context create ecs ecscontext --from-env
我正在尝试 deploy my docker containers to ECS using docker compose。一切都在本地按预期工作,但是当我尝试在 github 操作工作流程中执行相同操作时,我在尝试 运行 docker create context ecs ecscontext
:
"docker context create" requires exactly 1 argument.
我首先假设错误是因为 github 运行ner 上的 docker 和 docker-compose 版本与我本地的不同,所以我卸载了它们并重新安装它们。这是修改后的工作流文件:
name: deploy
on:
workflow_dispatch:
repository_dispatch:
types: [update_stack]
jobs:
deploy:
name: "Deploy stack"
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
AWS_DEFAULT_REGION: us-east-1
steps:
-
name: Update docker version
run: |
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update -y
sudo apt-get install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -y
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
-
name: Update docker-compose version
run: |
sudo rm /usr/local/bin/docker-compose
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
name: check docker new version
run: docker -v
-
name: check docker compose new version
run: docker compose version
-
name: Create ECS docker context
run: sudo docker context create ecs ecscontext --from-env
docker -v
输出与我在本地的输出相同:Docker version 20.10.12, build e91ed57
docker compose version
输出和我本地的一样:Docker Compose version v2.2.3
但它仍然在创建上下文步骤中失败。感谢您的帮助。
事实证明 docker
和 docker-compose
二进制文件无关紧要,我不得不通过 运行 sudo curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sudo sh
更新 docker CLI。新的工作流程如下所示:
name: deploy
on:
workflow_dispatch:
repository_dispatch:
types: [update_stack]
jobs:
deploy:
name: "Deploy stack"
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
AWS_DEFAULT_REGION: us-east-1
steps:
-
name: Update docker-compose version
run: |
sudo curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sudo sh
-
name: check docker new version
run: docker -v
-
name: check docker compose new version
run: docker compose version
-
name: Create ECS docker context
run: sudo docker context create ecs ecscontext --from-env