【发布时间】:2019-10-16 15:44:21
【问题描述】:
我在 Centos 服务器上安装了 Jenkins,并且还在同一台服务器上部署了 Docker 并建立了连接。我正在尝试使用 Jenkins 管道将 Docker 映像部署到不同的生产服务器。
我在 github 上已经有源代码,所有需要部署。
JENKINFILE(下面只有一小部分)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Running build automation'
sh './gradlew build --no-daemon'
archiveArtifacts artifacts: 'dist/trainSchedule.zip'
}
}
stage('Build Docker Image') {
when {
branch 'master'
}
steps {
script {
app = docker.build("willbla/train-schedule")
app.inside {
sh 'echo $(curl localhost:8080)'
}
}
}
}
stage('Push Docker Image') {
when {
branch 'master'
}
steps {
script {
docker.withRegistry('https://registry.hub.docker.com', 'docker_hub_login') {
app.push("${env.BUILD_NUMBER}")
app.push("latest")
码头工人文件
FROM node:carbon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
我能够构建映像并进行部署,但我对 Docker 如何使用源代码 COPY package*.json ./ . 构建映像感到困惑。为此,它必须在我的 Docker 所在的 Jenkins 服务器上本地。我找到了命令docker image ls构建的镜像,还在/var/lib/jenkins/jobs/<my-job-name>-build/builds/8/archive/target找到了构建工件,但是源代码在哪里以及它是如何复制到Dockerfile中的?
【问题讨论】:
-
COPY . .指令复制源代码。部署后看到容器里面的源码了吗?
标签: docker jenkins jenkins-pipeline dockerfile