Skip to content

Commit cb449a8

Browse files
committed
Armhf build attempt
1 parent 184a1cc commit cb449a8

File tree

3 files changed

+106
-42
lines changed

3 files changed

+106
-42
lines changed

Dockerfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ RUN curl -L -o /tmp/s6-overlay-amd64.tar.gz "https://github.com/just-containers/
1717
# App
1818
ENV NODE_ENV=production
1919

20-
#ADD LICENCE /srv/manager/LICENCE
21-
#ADD README.md /srv/manager/README.md
2220
ADD manager/dist /srv/manager/dist
2321
ADD manager/node_modules /srv/manager/node_modules
2422
ADD manager/src/backend /srv/manager/src/backend

Dockerfile.armhf

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
FROM jc21/nginx-proxy-manager-base:armhf
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+
# root filesystem
11+
COPY rootfs /
12+
13+
# s6 overlay
14+
RUN curl -L -o /tmp/s6-overlay-armhf.tar.gz "https://github.com/just-containers/s6-overlay/releases/download/v1.21.4.0/s6-overlay-armhf.tar.gz" \
15+
&& tar xzf /tmp/s6-overlay-armhf.tar.gz -C /
16+
17+
# App
18+
ENV NODE_ENV=production
19+
20+
ADD manager/dist /srv/manager/dist
21+
ADD manager/node_modules /srv/manager/node_modules
22+
ADD manager/src/backend /srv/manager/src/backend
23+
ADD manager/package.json /srv/manager/package.json
24+
25+
# Volumes
26+
VOLUME [ "/config", "/etc/letsencrypt" ]
27+
CMD [ "/init" ]
28+
29+
HEALTHCHECK --interval=15s --timeout=3s CMD curl -f http://localhost:9876/health || exit 1

Jenkinsfile

Lines changed: 77 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,94 @@
11
pipeline {
22
options {
3-
buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10'))
3+
buildDiscarder(logRotator(numToKeepStr: '10'))
44
disableConcurrentBuilds()
55
}
66
agent any
77
environment {
8-
IMAGE_NAME = "nginx-proxy-manager"
9-
TEMP_IMAGE_NAME = "nginx-proxy-manager-build_${BUILD_NUMBER}"
10-
TAG_VERSION = getPackageVersion()
8+
IMAGE_NAME = "nginx-proxy-manager"
9+
TEMP_IMAGE_NAME = "nginx-proxy-manager-build_${BUILD_NUMBER}"
10+
TEMP_IMAGE_NAME_ARM = "nginx-proxy-manager-armhf-build_${BUILD_NUMBER}"
11+
TAG_VERSION = getPackageVersion()
1112
}
1213
stages {
13-
stage('Prepare') {
14-
steps {
15-
sh 'docker pull jc21/$IMAGE_NAME-base'
16-
sh 'docker pull $DOCKER_CI_TOOLS'
17-
}
18-
}
1914
stage('Build') {
20-
steps {
21-
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base yarn --registry=$NPM_REGISTRY install'
22-
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base gulp build'
23-
sh 'rm -rf node_modules'
24-
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base yarn --registry=$NPM_REGISTRY install --prod'
25-
sh 'docker run --rm -v $(pwd)/manager:/data $DOCKER_CI_TOOLS node-prune'
26-
sh 'docker build --squash --compress -t $TEMP_IMAGE_NAME .'
27-
}
28-
}
29-
stage('Publish') {
30-
when {
31-
branch 'master'
32-
}
33-
steps {
34-
sh 'docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:latest'
35-
sh 'docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:latest'
36-
sh 'docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
37-
sh 'docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
38-
sh 'docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:latest'
39-
sh 'docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
15+
parallel {
16+
stage('x86_64') {
17+
when {
18+
branch 'master'
19+
}
20+
steps {
21+
// Codebase
22+
sh 'docker pull jc21/$IMAGE_NAME-base'
23+
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base yarn --registry=$NPM_REGISTRY install'
24+
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base gulp build'
25+
sh 'rm -rf node_modules'
26+
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base yarn --registry=$NPM_REGISTRY install --prod'
27+
sh 'docker run --rm -v $(pwd)/manager:/data $DOCKER_CI_TOOLS node-prune'
28+
29+
// Docker Build
30+
sh 'docker build --pull --no-cache --squash --compress -t $TEMP_IMAGE_NAME .'
31+
32+
// Private Registry
33+
sh 'docker tag $TEMP_IMAGE_NAME $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest'
34+
sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest'
35+
sh 'docker tag $TEMP_IMAGE_NAME ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
36+
sh 'docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION'
37+
38+
// Dockerhub
39+
sh 'docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:latest'
40+
sh 'docker tag $TEMP_IMAGE_NAME docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
41+
42+
withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'dpass', usernameVariable: 'duser')]) {
43+
sh "docker login -u '${duser}' -p '$dpass'"
44+
sh 'docker push docker.io/jc21/$IMAGE_NAME:latest'
45+
sh 'docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
46+
}
4047

41-
withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'dpass', usernameVariable: 'duser')]) {
42-
sh "docker login -u '${duser}' -p '$dpass'"
43-
sh 'docker push docker.io/jc21/$IMAGE_NAME:latest'
44-
sh 'docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION'
48+
sh 'docker rmi $TEMP_IMAGE_NAME'
49+
}
50+
}
51+
stage('armhf') {
52+
when {
53+
branch 'master'
54+
}
55+
agent {
56+
label 'armhf'
57+
}
58+
steps {
59+
// Codebase
60+
sh 'docker pull jc21/$IMAGE_NAME-base:armhf'
61+
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base:armhf yarn --registry=$NPM_REGISTRY install'
62+
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base:armhf gulp build'
63+
sh 'rm -rf node_modules'
64+
sh 'docker run --rm -v $(pwd)/manager:/srv/manager -w /srv/manager jc21/$IMAGE_NAME-base:armhf yarn --registry=$NPM_REGISTRY install --prod'
65+
sh 'docker run --rm -v $(pwd)/manager:/data $DOCKER_CI_TOOLS:latest-armhf node-prune'
66+
67+
// Docker Build
68+
sh 'docker build --pull --no-cache --squash --compress -f Dockerfile.armhf -t $TEMP_IMAGE_NAME_ARM .'
69+
70+
// Private Registry
71+
sh 'docker tag $TEMP_IMAGE_NAME_ARM $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest-armhf'
72+
sh 'docker push $DOCKER_PRIVATE_REGISTRY/$IMAGE_NAME:latest-armhf'
73+
sh 'docker tag $TEMP_IMAGE_NAME_ARM ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION-armhf'
74+
sh 'docker push ${DOCKER_PRIVATE_REGISTRY}/$IMAGE_NAME:$TAG_VERSION-armhf'
75+
76+
// Dockerhub
77+
sh 'docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:latest-armhf'
78+
sh 'docker tag $TEMP_IMAGE_NAME_ARM docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-armhf'
79+
80+
withCredentials([usernamePassword(credentialsId: 'jc21-dockerhub', passwordVariable: 'dpass', usernameVariable: 'duser')]) {
81+
sh "docker login -u '${duser}' -p '$dpass'"
82+
sh 'docker push docker.io/jc21/$IMAGE_NAME:latest-armhf'
83+
sh 'docker push docker.io/jc21/$IMAGE_NAME:$TAG_VERSION-armhf'
84+
}
85+
86+
sh 'docker rmi $TEMP_IMAGE_NAME_ARM'
87+
}
4588
}
4689
}
4790
}
4891
}
49-
triggers {
50-
bitbucketPush()
51-
}
5292
post {
5393
success {
5494
slackSend color: "#72c900", message: "SUCCESS: <${BUILD_URL}|${JOB_NAME}> build #${BUILD_NUMBER} - ${currentBuild.durationString}"
@@ -58,9 +98,6 @@ pipeline {
5898
slackSend color: "#d61111", message: "FAILED: <${BUILD_URL}|${JOB_NAME}> build #${BUILD_NUMBER} - ${currentBuild.durationString}"
5999
sh 'figlet "FAILURE"'
60100
}
61-
always {
62-
sh 'docker rmi $TEMP_IMAGE_NAME'
63-
}
64101
}
65102
}
66103

0 commit comments

Comments
 (0)