diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cc2f81c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM node:alpine AS builder +WORKDIR /app + +COPY package*.json ./ + +RUN npm ci + +COPY . . + +RUN npm run build + +FROM node:alpine + +WORKDIR /app + +COPY --from=builder /app/build ./ + +CMD ["node", "./"] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..d1f8ea8 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,35 @@ +pipeline { + agent any + + environment { + REGISTRY = "docker-registry.service.consul" + IMAGE_NAME = "homepage" + } + + stages { + stage('Build') { + steps { + sh 'npm ci' + sh 'npm run build' + } + } + + stage('Docker Build') { + steps { + script { + dockerImage = docker.build("$REGISTRY/$IMAGE_NAME") + } + } + } + + stage('Docker Publish') { + steps { + script { + docker.withRegistry("http://$REGISTRY") { + dockerImage.push("latest") + } + } + } + } + } +} \ No newline at end of file