如何在 dockerized Jenkins 之外构建 Docker 容器

How to build Docker Container outside of dockerized Jenkins

我在 Ubuntu 20.04 上有一个 docker 组合的 Je​​nkins 容器 运行ning。当我推送我的代码时,Jenkins 会自动启动一项工作。然后执行 docker build 操作,然后执行 docker compose up -d 操作。我的应用程序已启动 运行ing 但无法访问...

当我 运行 docker ps 在 Ubuntu 上时,我的应用程序没有容器,因为 docker 我的应用程序的容器是在 Jenkins 容器中构建的,docker compose up 也是在我的 jenkins 容器中执行的。

我想实现我的应用程序 运行 在 Ubuntu 而非 Jenkins 容器内与 Jenkins 和其他容器并排运行。我怎样才能做到这一点?

假设您有一个 docker 化的应用程序。 Jenkins 还在 运行 暴露在某个端口的 docker 容器上。然后你可以打开 Jenkins 并编写一个 freestyle Job 进行部署,它将执行以下操作:

  1. 有一个 deploy 文件夹,其中的 shellscript 如下所示。此构建存储库可以与源代码位于同一存储库中,也可以位于其他位置。
ssh -i key user@server '
# The command here are run within this ssh session.
#Checkout your code from version control
git clone your_repo
#build your docker services
cd your_repo
docker-compose build service1
docker-compose build service2
...
#run your built services
docker-compose up -d service1
docker-compose up -d service2
... 
'

现在,您应该可以部署并访问该应用程序,并且 Jenkins 应该能够通知它。