如何在 dockerized Jenkins 之外构建 Docker 容器
How to build Docker Container outside of dockerized Jenkins
我在 Ubuntu 20.04 上有一个 docker 组合的 Jenkins 容器 运行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 进行部署,它将执行以下操作:
- 有一个 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 应该能够通知它。
我在 Ubuntu 20.04 上有一个 docker 组合的 Jenkins 容器 运行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 进行部署,它将执行以下操作:
- 有一个 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 应该能够通知它。