diff --git a/Dockerfile b/Dockerfile index 38a2ec0..47f4156 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ -FROM node:12.18.1 +FROM node:16-alpine WORKDIR /app -COPY ["package.json", "package-lock.json", "./"] +COPY package*.json ./ RUN npm install -COPY . . -CMD ["npm", "run", "devStart"] +COPY . . +CMD ["node", "./src/index.js"] + diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..59593d6 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,36 @@ +pipeline { + agent { + label 'new_server' + } + environment { + DOCKER_CREDS = credentials('dockerhub_id') + } + stages { + stage('Build') { + steps { + script { + def EXT_PORT + if (BRANCH_NAME == 'dev') { + EXT_PORT = 1480 + } else { + EXT_PORT = 1580 + } + sh ''' + docker login -u $DOCKER_CREDS_USR -p $DOCKER_CREDS_PSW + docker build . -t bismabaig/node-app:$BRANCH_NAME-latest -t bismabaig/node-app:$BRANCH_NAME-$BUILD_ID + docker push bismabaig/node-app:$BRANCH_NAME-latest + docker push bismabaig/node-app:$BRANCH_NAME-$BUILD_ID + ''' + } + } + } + } + post { + success { + sh 'docker-compose up -d' + } + failure { + echo 'Build failed!' + } + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d463164 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: '3.8' +services: + node-app: + build: + context: . + dockerfile: Dockerfile + image: bismabaig/node-app:$BRANCH_NAME-latest + environment: + SERVER_PORT: '9000' + ports: + - "${EXT_PORT}:9000"