gpt4 book ai didi

docker - 使用 Jenkinsfile 让容器运行

转载 作者:行者123 更新时间:2023-12-02 18:03:12 26 4
gpt4 key购买 nike

我在编写 Jenkinsfile 时遇到了问题。我的环境:

  • 运行docker的服务器
  • Jenkins 在服务器上作为容器运行

我在 DockerHub 上有一个 Docker 镜像,我可以毫无问题地获取该镜像。

我的 Jenkinsfile 目前看起来是这样的:

pipeline {
agent {
docker {
image 'emil2709/servopsdockerfile'
args '-d -p 80:80 /usr/sbin/apache2ctl -D FOREGROUND'
}
}

stages {
stage ('Testing') {
steps {
sh 'echo testing'
}
}
stage ('Deploying') {
steps {
sh 'echo deploying'
}
}
}
}

容器不会运行。
我想:

  • 制作一个测试容器
  • 如果我的所有测试都正常,我想部署一个新的容器作为网络服务器。

我的问题是让 Docker 容器运行,我该怎么做?

最佳答案

您可以在 docker 镜像上运行测试,该镜像具有构建和测试源代码所需的工具。然后,在构建项目之后,您可以创建一个新的 docker 镜像。

假设您有一个使用 maven 的 java 项目。在这种情况下,测试并构建您的源代码。然后,在下一阶段,只需创建您的 docker 镜像即可。

IMAGE_ID:包含必要工具的docker镜像,本例为maven。

并且您需要一个 Dockerfile 来发出命令 docker build

pipeline {

stages {
stage ('Building') {
steps {
sh '''
docker run -i --rm -v ./:/src -w /src IMAGE_ID /bin/bash -c "mvn test package"
'''
}
}
stage ('dockerization') {
steps {
sh '''
docker build -t your_tag .
docker push ...
'''
}
}
}
}

一个最小的 Dockerfil 示例:

FROM openjdk:8-jdk
COPY target/*.jar /app/application.jar
EXPOSE 8080
ENTRYPOINT java -jar /app/application.jar

关于docker - 使用 Jenkinsfile 让容器运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48884007/

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