我有Jenkins作业的阶段,可以使用docker测试和部署我的nodejs,我在端口3000上运行docker,但是当我尝试浏览我的docker时ip-

server:3000,它不起作用,并且我的docker没有运行

这是我的Jenkinsfile

node {

try {

stage('Checkout') {

checkout scm

}

stage('Environment') {

sh 'git --version'

echo "Branch: ${env.BRANCH_NAME}"

sh 'docker -v'

sh 'printenv'

}

stage('Build Docker test'){

sh 'docker build -t crud-test -f Dockerfile.test --no-cache .'

}

stage('Docker test'){

sh 'docker run --rm crud-test'

}

stage('Clean Docker test'){

sh 'docker rmi crud-test'

}

stage('Deploy'){

if(env.BRANCH_NAME == 'master'){

sh 'docker build -t crud --no-cache .'

sh 'docker run -d -p 3000:3000 -e DB_USERNAME=myusername -e DB_PASSWORD=12345678 -e DB_NAME=employee crud'

}

}

}

catch (err) {

throw err

}

}

Dockerfile:

# Extending image

FROM node:carbon

RUN apt-get update

RUN apt-get upgrade -y

RUN apt-get -y install autoconf automake libtool nasm make pkg-config git apt-utils

# Create app directory

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

# Versions

RUN npm -v

RUN node -v

COPY ./server/ /usr/src/app

RUN npm install

# Port to listener

EXPOSE 3000

# Environment variables

ENV PORT 4000

ENV DB_USERNAME myusername

ENV DB_PASSWORD 12345678

ENV DB_NAME employee

# Main command

CMD [ "npm", "run", "dev" ]

我在ubuntu服务器上通过docker-

compose运行Jenkins,是我丢失还是出错了?因为我的目标是使用Jenkins来测试我的服务器,并且在测试成功后,它将把我的Nodejs部署到我的ubuntu服务器上,因此在Jenkins上完成构建后,我可以在浏览器上浏览我的服务器API以确保它可以在ip-

sever:3000

但是在上面的管道中,每次我推动掌握时,这样做是正确的吗,无需单击build nowJenkins 即可更新服务器API ?如果没有,该如何配置?

我也不知道如何隐藏我的ENV,所以我出现在舞台Jenkinsfile上,因为在多分支管道上,env参数没有任何选择

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐