Skip to content

Commit e3ed216

Browse files
committed
Added arm64 build
1 parent 2a3d792 commit e3ed216

File tree

2 files changed

+91
-6
lines changed

2 files changed

+91
-6
lines changed

Dockerfile.arm64

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
FROM jc21/nginx-proxy-manager-base:latest-arm64
2+
3+
MAINTAINER Jamie Curnow <[email protected]>
4+
LABEL maintainer="Jamie Curnow <[email protected]>"
5+
6+
ENV SUPPRESS_NO_CONFIG_WARNING=1
7+
ENV S6_FIX_ATTRS_HIDDEN=1
8+
RUN echo "fs.file-max = 65535" > /etc/sysctl.conf
9+
10+
# Nginx, Node and required packages should already be installed from the base image
11+
12+
# root filesystem
13+
COPY rootfs /
14+
15+
# s6 overlay
16+
RUN curl -L -o /tmp/s6-overlay-aarch64.tar.gz "https://github.com/just-containers/s6-overlay/releases/download/v1.21.8.0/s6-overlay-aarch64.tar.gz" \
17+
&& tar xzf /tmp/s6-overlay-aarch64.tar.gz -C /
18+
19+
# App
20+
ENV NODE_ENV=production
21+
22+
ADD dist /app/dist
23+
ADD node_modules /app/node_modules
24+
ADD src/backend /app/src/backend
25+
ADD package.json /app/package.json
26+
ADD knexfile.js /app/knexfile.js
27+
28+
# Volumes
29+
VOLUME [ "/data", "/etc/letsencrypt" ]
30+
CMD [ "/init" ]
31+
32+
# Ports
33+
EXPOSE 80
34+
EXPOSE 81
35+
EXPOSE 443
36+
EXPOSE 9876
37+
38+
HEALTHCHECK --interval=15s --timeout=3s CMD curl -f http://localhost:9876/health || exit 1

Jenkinsfile

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ pipeline {
55
}
66
agent any
77
environment {
8-
IMAGE_NAME = "nginx-proxy-manager"
9-
BASE_IMAGE_NAME = "jc21/nginx-proxy-manager-base:latest"
10-
TEMP_IMAGE_NAME = "nginx-proxy-manager-build_${BUILD_NUMBER}"
11-
TEMP_IMAGE_NAME_ARM = "nginx-proxy-manager-arm-build_${BUILD_NUMBER}"
12-
TAG_VERSION = getPackageVersion()
13-
MAJOR_VERSION = "2"
8+
IMAGE_NAME = "nginx-proxy-manager"
9+
BASE_IMAGE_NAME = "jc21/nginx-proxy-manager-base:latest"
10+
TEMP_IMAGE_NAME = "nginx-proxy-manager-build_${BUILD_NUMBER}"
11+
TEMP_IMAGE_NAME_ARM = "nginx-proxy-manager-arm-build_${BUILD_NUMBER}"
12+
TEMP_IMAGE_NAME_ARM64 = "nginx-proxy-manager-arm64-build_${BUILD_NUMBER}"
13+
TAG_VERSION = getPackageVersion()
14+
MAJOR_VERSION = "2"
1415
}
1516
stages {
1617
stage('Prepare') {
@@ -144,6 +145,52 @@ pipeline {
144145
}
145146
}
146147
}
148+
stage('arm64') {
149+
when {
150+
branch 'master'
151+
}
152+
agent {
153+
label 'arm64'
154+
}
155+
steps {
156+
ansiColor('xterm') {
157+
// Codebase
158+
sh 'docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE_NAME-arm64 yarn install'
159+
sh 'docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE_NAME-arm64 npm run-script build'
160+
sh 'rm -rf node_modules'
161+
sh 'docker run --rm -v $(pwd):/app -w /app $BASE_IMAGE_NAME-arm64 yarn install --prod'
162+
163+
// Docker Build
164+
sh 'docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE_NAME_ARM64 -f Dockerfile.arm64 .'
165+
166+
// Dockerhub
167+
sh 'docker tag $TEMP_IMAGE_NAME_ARM64 docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-arm64'
168+
sh 'docker tag $TEMP_IMAGE_NAME_ARM64 docker.io/jc21/$IMAGE_NAME:$MAJOR_VERSION-arm64'
169+
sh 'docker tag $TEMP_IMAGE_NAME_ARM64 docker.io/jc21/$IMAGE_NAME:latest-arm64'
170+
171+
withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'dpass', usernameVariable: 'duser')]) {
172+
sh "docker login -u '${duser}' -p '$dpass'"
173+
sh 'docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-arm64'
174+
sh 'docker push docker.io/jc21/$IMAGE_NAME:$MAJOR_VERSION-arm64'
175+
sh 'docker push docker.io/jc21/$IMAGE_NAME:latest-arm64'
176+
}
177+
178+
// Private Registry
179+
sh 'docker tag $TEMP_IMAGE_NAME_ARM64 $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$TAG_VERSION-arm64'
180+
sh 'docker tag $TEMP_IMAGE_NAME_ARM64 $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$MAJOR_VERSION-arm64'
181+
sh 'docker tag $TEMP_IMAGE_NAME_ARM64 $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest-arm64'
182+
183+
withCredentials([usernamePassword(credentialsId: 'jc21-private-registry', passwordVariable: 'dpass', usernameVariable: 'duser')]) {
184+
sh "docker login -u '${duser}' -p '$dpass' $DOCKER_PRIVATE_REGISTRY"
185+
sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$TAG_VERSION-arm64'
186+
sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:$MAJOR_VERSION-arm64'
187+
sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest-arm64'
188+
}
189+
190+
sh 'docker rmi $TEMP_IMAGE_NAME_ARM64'
191+
}
192+
}
193+
}
147194
}
148195
}
149196
}

0 commit comments

Comments
 (0)