libXext libXrender fontconfig libfontconfig.so.1
docker dir under your projFROM leonard47/egg-node-with-headless
EXPOSE 700x
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
RUN mkdir -p /app
WORKDIR /app
ADD release.tgz /app
CMD nohup sh -c 'npm run server'
ps: if ADD release.tgz has something wrong, changes to :
COPY release.tgz /app
RUN tar -xvzf release.tgz .
RUN rm -rf release.tgz && \
rm -rf docker/release.tgz
env.GIT='ssh://[email protected]'
env.name='project-name'
def timeStamp = Calendar.getInstance().getTime().format('YYYYMMddhhmmss',TimeZone.getTimeZone('Asia/Shanghai'))
env.BUILD_TIMESTAMP = timeStamp
node("CI-NODE-NAME"){
stage('Git Checkout'){
sh '''
rm -rf ./*
'''
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'your-id',url: env.GIT]]])
}
stage('Build and Push Image'){
withCredentials([string(credentialsId: 'your-token', variable: 'HUB_TOKEN')]) {
sh '''
#!/bin/bash -ilx
cd $WORKSPACE/
chmod -R 777 $WORKSPACE/
rm -rf ./docker/release.tgz
sleep 5
cnpm install --production --unsafe-perm
sleep 5
tar -cvzf ./docker/release.tgz .
sleep 5
cd $WORKSPACE/docker/
docker rmi */*/${name} -f
sleep 5
docker build --rm -t */*/${name}:${BUILD_TIMESTAMP} .
sleep 5
docker push */*/${name}:${BUILD_TIMESTAMP} .
sleep 5
'''
}
}
}
node("node-to-deploy"){
stage('Pull Image And Run'){
withCredentials([string(credentialsId: 'your-token', variable: 'HUB_TOKEN')]) {
sh '''
set +e
docker rm -f ${name}
sleep 30
docker pull */*/${name}:${BUILD_TIMESTAMP}
docker run -d --name ${name} --net=host --ulimit nofile=200000 -v /data0/${name}/logs:/root/logs -v /etc/localtime:/etc/localtime:ro -m 1536M --memory-swap 2048M */*/${name}:${BUILD_TIMESTAMP}
'''
}
}
}
Shell
#!/bin/bash -ilx
cd $WORKSPACE/
chmod -R 777 $WORKSPACE/
rm -rf ./docker/release.tgz
sleep 5
cnpm install --production --unsafe-perm
sleep 5
tar -cvzf ./docker/release.tgz .
sleep 5
cd $WORKSPACE/docker/
docker rm ${JOB_BASE_NAME} -f
sleep 5
docker rmi */*/${JOB_BASE_NAME} -f
sleep 5
docker build --rm -t */*/${JOB_BASE_NAME} .
sleep 5
docker push */*/${JOB_BASE_NAME}
sleep 5
After Building Stage
sleep 5
docker run -d --name ${JOB_BASE_NAME} --net=host --ulimit nofile=200000 -v /data0/${JOB_BASE_NAME}/logs:/root/logs -v /etc/localtime:/etc/localtime:ro -m 1536M --memory-swap 2048M */*/${JOB_BASE_NAME}
sleep 1
Content type
Image
Digest
Size
196.5 MB
Last updated
almost 6 years ago
docker pull leonard47/egg-node-with-headless