gpt4 book ai didi

docker-compose - 如何在 bitbucket 管道中使用 docker-compose 部署到远程主机?

转载 作者:行者123 更新时间:2023-12-04 13:56:01 31 4
gpt4 key购买 nike

目前我在 bitbucket 中有一个 git 项目,它有一个 dockerised 的 web 应用程序。我随后创建了一个 bitbucket-pipelines.yml 文件,它概述了我的整个部署过程。

我的所有 CI 都运行良好,我可以构建、测试并将我的生产镜像推送到 dockerhub 注册表。

现在到最后阶段,部署。这就是事情变得困惑的地方。

这是我的管道配置的部署部分:

image: atlassian/default-image:2

pipelines:
branches:
master:

- step:
trigger: manual
deployment: production
name: Deploy
services:
- docker
script:
- export IMAGE_VERSION=$BITBUCKET_BUILD_NUMBER
- export DOCKER_HOST=ssh://root@$IP_ADDRESS
- docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
- ./cd.sh pull
- ./cd.sh deploy
- ./cd.sh migrate
- ./cd.sh clean

这是构建中的错误:
    + ./cd.sh pull
[240] Failed to execute script docker-compose
Traceback (most recent call last):
File "site-packages/docker/api/client.py", line 151, in __init__
NameError: name 'SSHAdapter' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "bin/docker-compose", line 6, in <module>
File "compose/cli/main.py", line 71, in main
File "compose/cli/main.py", line 124, in perform_command
File "compose/cli/command.py", line 42, in project_from_options
File "compose/cli/command.py", line 123, in get_project
File "compose/cli/command.py", line 94, in get_client
File "compose/cli/docker_client.py", line 127, in docker_client
File "site-packages/docker/api/client.py", line 156, in __init__
docker.errors.DockerException: Install paramiko package to enable ssh:// support

我目前正确设置了我的 SSH key ,所以我知道这不是问题。我从连接到登台环境的本地机器上对此进行了测试,并且运行良好。

我猜这是使用默认 Atlassian 图像的限制?它可能使用的是旧版本的docker什么的?

我的远程机器上基本上运行着 docker,只有它需要运行我的服务的容器。它没有安装 git 项目或任何东西。

有没有人知道如何使用 bitbucket 管道解决这个问题?

如果没有,关于更好的部署策略的任何建议?

我正在使用 docker-compose v3.3。

谢谢。

最佳答案

抱歉延迟了 10 个月的重播,我认为你来对了,我建议将 ssh 放到服务器本身,然后使用类似的东西从 bitbucket 本身执行 ssh

- step:
name: 'Deploying to QA'
deployment: qa
script:
- pipe: atlassian/ssh-run:0.2.2
variables:
SSH_USER: '$SSH_USER'
SERVER: '$SSH_SERVER'
COMMAND: "sh ./deploy.sh"
为什么不安装 Kubernetes 呢?您可以安装类似 Rancher 之类的东西,它是开源的并且具有创建的 GUI 界面。

关于docker-compose - 如何在 bitbucket 管道中使用 docker-compose 部署到远程主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62185176/

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