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

时间:2020-06-04 01:04:02

标签: docker-compose bitbucket bitbucket-pipelines

目前,我在bitbucket中有一个git项目,该项目具有已被dockerized的Web应用程序。随后,我创建了一个bitbucket-pipelines.yml文件,该文件概述了我的整个部署过程。

我所有的CI都很好用,我可以构建,测试并将生产映像推送到dockerhub注册表。

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

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

<label ~~ id="btn_click" onclick="btn()">

<table class="table table-bordered" id="data_table">
<thead>
    <tr>
        <th>ID</th>
        <th>Name</th>
    </tr>
    </thead>
    <tbody>
       {% for li in test_list %}
       <tr>
           <td> {{ li.Id }} </td>
           <td> {{ li.Name}} </td>
       </tr>
       {% endfor %}
    </tbody>
</table>

<Script type="text/javascript"> 
    function btn { 
        //I'd like to put above {for~~ endfor} source here!
    } 
</Script>

这是构建中的错误:

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

我目前正确设置了SSH密钥,所以我知道这不是问题。我在连接到暂存环境的本地计算机上对此进行了测试,并且工作正常。

我猜想这是使用默认Atlassian图像的限制吗?它可能正在使用旧版本的Docker或其他工具?

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

有人知道如何使用Bitbucket管道解决此问题吗?

如果没有,关于更好的部署策略有什么建议吗?

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

谢谢。

1 个答案:

答案 0 :(得分:0)

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

 a --- 14
 b --- 0
 c --- 7
 d --- 4
 e --- 10
 f --- 4
 g --- 2
 h --- 8
 i --- 8
 j --- 0
 k --- 1
 l --- 0
 m --- 0
 n --- 11
 o --- 5
 p --- 0
 q --- 0
 r --- 12
 s --- 5
 t --- 17
 u --- 3
 v --- 0
 w --- 0
 x --- 1
 y --- 0
 z --- 0

为什么不安装 Kubernetes 呢?你可以安装一些像 Rancher 这样的开源软件并且有一个创建的 GUI 界面。

相关问题