我在编写Jenkinsfile
时遇到问题。
我的环境:
我在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容器运行,我该怎么做?
答案 0 :(得分:0)
您可以在docker镜像上运行测试,该镜像具有构建和测试源代码所需的工具。然后,在构建项目之后,您可以创建一个新的docker镜像。
假设你有一个使用maven的java项目。在此方案中,测试并构建源代码。然后,在下一阶段,只需创建您的泊坞窗图像。
IMAGE_ID:包含必要工具的泊坞窗图片,在示例中为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