Docker compose down 不删除容器

问题描述 投票:0回答:1

由于某种原因,我在容器名称已经被使用的情况下不断收到此错误,我并不总是在部署时收到它,但它发生的频率足以导致问题

err: Error response from daemon: Conflict. The container name "/***-strapi-1" is already in use by container "f728e54d6ecf05e9be481c94e0f3aa6725ea711ad16ee8feb72cd910818d3ef2". You have to remove (or rename) that container to be able to reuse that name.

即使在 github actions 中的部署文件中,我在再次部署 itt 之前也清楚地删除了我的容器堆栈,您认为这种情况下的错误是什么?

  - name: Run the docker-compose.prod.yml stack
    uses: appleboy/[email protected]
    with:
      host: ${{ secrets.HOST }}
      username: ${{ secrets.USERNAME }}
      key: ${{ secrets.PRIVATE_KEY }}
      passphrase: ${{ secrets.PASSPHRASE }}
      script: |
        echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
        export DATABASE_HOST=${{ secrets.DATABASE_HOST }}
        export DATABASE_PORT=${{ secrets.DATABASE_PORT }}
        export DATABASE_NAME=${{ secrets.DATABASE_NAME }}
        export DATABASE_USERNAME=${{ secrets.DATABASE_USERNAME }}
        export DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }}
        export APP_KEYS=${{ secrets.APP_KEYS }}
        export API_TOKEN_SALT=${{ secrets.API_TOKEN_SALT }}
        export ADMIN_JWT_SECRET=${{ secrets.ADMIN_JWT_SECRET }}
        export JWT_SECRET=${{ secrets.JWT_SECRET }}
        export R2_ACCESS_KEY_ID=${{ secrets.R2_ACCESS_KEY_ID }}
        export R2_ACCESS_SECRET=${{ secrets.R2_ACCESS_SECRET }}
        export R2_ENDPOINT=${{ secrets.R2_ENDPOINT }}
        export R2_BUCKET=${{ secrets.R2_BUCKET }}
        export R2_PUBLIC_ACCESS_URL=${{ secrets.R2_PUBLIC_ACCESS_URL }}
        export APP_URL=${{ secrets.APP_URL }}
        docker compose -f docker-compose.prod.yml down
        docker compose -f docker-compose.prod.yml pull
        docker compose -f docker-compose.prod.yml up -d
docker docker-compose github-actions
1个回答
-1
投票

我认为你的脚本在下拉和拉取之间需要一些时间。

docker compose -f docker-compose.prod.yml down
while docker compose ps | grep -q Up; do sleep 1; done # Ensure all containers of your stack are down
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d

一些 Docker 容器需要时间才能正常关闭。

© www.soinside.com 2019 - 2024. All rights reserved.