diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5d6b514 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM node:22-alpine + +WORKDIR /usr/app + +COPY . . + +ARG VERSION + +RUN npm install + +RUN npx nuxi cleanup + +RUN npx nuxi build + +EXPOSE 3000 + +CMD ["node", ".output/server/index.mjs"] \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..f3d2919 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,38 @@ +pipeline { + agent any + + stages { + stage('Set Image Name') { + steps { + script { + env.IMAGE = "harbor.dinauer.dev/verifoo/frontend-admin:${env.BUILD_NUMBER}"; + } + } + } + stage('Build Image') { + steps { + script { + sh "docker build --no-cache -t ${env.IMAGE} ." + } + } + } + stage('Push Image to Docker Hub') { + steps { + script { + withCredentials([usernamePassword(credentialsId: 'harbor', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { + sh 'echo ${PASSWORD} | docker login harbor.dinauer.dev -u ${USERNAME} --password-stdin' + sh "docker push ${env.IMAGE}" + sh "docker logout harbor.dinauer.dev" + } + } + } + } + stage('Remove image from host') { + steps { + script { + sh "docker image rm --force ${env.IMAGE}" + } + } + } + } +} \ No newline at end of file