Skip to content

Commit 3c24505

Browse files
authored
Configure health port and add jenkinsfile (#1)
1 parent 1b0df44 commit 3c24505

File tree

2 files changed

+52
-2
lines changed

2 files changed

+52
-2
lines changed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ WORKDIR /app
1515
COPY --from=build /app/target/pic-sure-logging-*.jar app.jar
1616
RUN mkdir -p /app/logs && chown appuser:appgroup /app/logs
1717
USER appuser
18-
EXPOSE 8080
18+
EXPOSE ${PORT:-8080}
1919
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
20-
CMD wget --spider -q http://localhost:8080/health || exit 1
20+
CMD wget --spider -q http://localhost:${PORT:-8080}/health || exit 1
2121
ENTRYPOINT ["java", "-jar", "app.jar"]

jenkinsfile

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
pipeline {
2+
agent any
3+
4+
parameters {
5+
string(name: 'DOCKER_REGISTRY', description: 'Docker registry URL (e.g., ECR URL)', defaultValue: 'hms-dbmi')
6+
string(name: 'REPOSITORY_NAME', description: 'Docker repository name', defaultValue: 'pic-sure-logging')
7+
choice(name: 'DEPLOY_METHOD', description: 'Deployment method', choices: ['docker', 's3', 'none'])
8+
string(name: 'TARGET_STACK', description: 'Target stack for deployment (required for s3 deploy)', defaultValue: '')
9+
string(name: 'STACK_S3_BUCKET', description: 'S3 bucket for image upload (required for s3 deploy)', defaultValue: '')
10+
}
11+
12+
environment {
13+
DOCKER_BUILD_ARGS = "--build-arg http_proxy=$http_proxy --build-arg https_proxy=$http_proxy --build-arg no_proxy=\"$no_proxy\" --build-arg HTTP_PROXY=$http_proxy --build-arg HTTPS_PROXY=$http_proxy --build-arg NO_PROXY=\"$no_proxy\""
14+
GIT_BRANCH_SHORT = sh(script: 'echo ${GIT_BRANCH} | cut -d "/" -f 2', returnStdout: true).trim()
15+
GIT_COMMIT_SHORT = sh(script: 'echo ${GIT_COMMIT} | cut -c1-7', returnStdout: true).trim()
16+
IMAGE_TAG = "${GIT_BRANCH_SHORT}_${GIT_COMMIT_SHORT}"
17+
}
18+
19+
stages {
20+
stage('build') {
21+
steps {
22+
script {
23+
env.LATEST_TAG = params.DEPLOY_METHOD == 's3' ? 'latest' : 'LATEST'
24+
}
25+
sh "docker build ${DOCKER_BUILD_ARGS} -t ${params.DOCKER_REGISTRY}/${params.REPOSITORY_NAME}:${IMAGE_TAG} ."
26+
sh "docker tag ${params.DOCKER_REGISTRY}/${params.REPOSITORY_NAME}:${IMAGE_TAG} ${params.DOCKER_REGISTRY}/${params.REPOSITORY_NAME}:${LATEST_TAG}"
27+
}
28+
}
29+
stage('deploy') {
30+
steps {
31+
script {
32+
if (params.DEPLOY_METHOD == 'docker') {
33+
sh "docker stop pic-sure-logging || true"
34+
sh "docker rm pic-sure-logging || true"
35+
sh """docker run --name=pic-sure-logging --restart always \
36+
--network=picsure \
37+
--env-file /usr/local/docker-config/pic-sure-logging/logging.env \
38+
-v /usr/local/docker-config/pic-sure-logging/logs:/app/logs \
39+
-d ${params.DOCKER_REGISTRY}/${params.REPOSITORY_NAME}:${IMAGE_TAG}"""
40+
} else if (params.DEPLOY_METHOD == 's3') {
41+
sh "docker save ${params.DOCKER_REGISTRY}/${params.REPOSITORY_NAME}:${LATEST_TAG} | gzip > pic-sure-logging.tar.gz"
42+
sh "aws s3 --sse=AES256 cp pic-sure-logging.tar.gz s3://${params.STACK_S3_BUCKET}/${params.TARGET_STACK}/containers/pic-sure-logging.tar.gz"
43+
} else {
44+
echo "Deployment skipped."
45+
}
46+
}
47+
}
48+
}
49+
}
50+
}

0 commit comments

Comments
 (0)