From bc7905b47a5395f8e7cde903be6df2a0ec3ae158 Mon Sep 17 00:00:00 2001 From: rlacko <rlacko@sch.bme.hu> Date: Tue, 4 Aug 2020 17:49:12 +0200 Subject: [PATCH] dev branch auto deploy --- .gitlab-ci.yml | 86 ++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 8 ++++ docker-compose.dev.yml | 37 +++++++++--------- 3 files changed, 112 insertions(+), 19 deletions(-) create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..004ce007 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,86 @@ +stages: + - Build +# - Test + - Docker build + - Deploy + +#services: +# - mongo + +variables: + CONTAINER_IMAGE: 'registry.kszk.bme.hu/bodysch/backend:$CI_COMMIT_REF_NAME' +# MONGODB_TEST_URI: 'mongodb://mongo/bodysch-test' + +Build: + stage: Build + tags: [kszk] + image: node:14 + script: + - npm install + cache: + paths: + - node_modules/ + artifacts: + expire_in: 1 day + paths: + - node_modules/ + +#Test: +# stage: Test +# tags: [kszk] +# image: node:14 +# script: +# - npm test +# artifacts: +# expire_in: 1 week +# paths: +# - junit.xml +# reports: +# junit: junit.xml + +Docker build: + stage: Docker build + tags: [kszk] + only: + - master + - dev + image: + name: gcr.io/kaniko-project/executor:debug + entrypoint: [''] + script: + - echo "{\"auths\":{\"registry.kszk.bme.hu\":{\"username\":\"$REGISTRY_USER\",\"password\":\"$REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json + - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CONTAINER_IMAGE + +Deploy dev: + stage: Deploy + tags: [kszk-deploy] # request the custom SSH executor + only: + - dev + script: # your deploy logic + - echo "$REGISTRY_PASSWORD" | docker login registry.kszk.bme.hu --username $REGISTRY_USER --password-stdin + - cp docker-compose.dev.yml /home/kszk-gitlab-deployer/bodysch-dev/ + - cd /home/kszk-gitlab-deployer/bodysch-dev/ + - docker-compose -f docker-compose.dev.yml --no-ansi pull + - docker-compose -f docker-compose.dev.yml up -d + - docker system prune -f + variables: + SSH_HOST: donald.sch.bme.hu # required + SSH_USER: kszk-gitlab-deployer # default: kszk-gitlab-deployer + SSH_PORT: 10122 # default: 22 + +# Deploy prod: +# stage: Deploy +# tags: [kszk-deploy] # request the custom SSH executor +# only: +# - master +# script: # your deploy logic +# - echo "$REGISTRY_PASSWORD" | docker login registry.kszk.bme.hu --username $REGISTRY_USER --password-stdin +# - cp docker-compose.yml /home/kszk-gitlab-deployer/kszkepzes-prod/ +# - cd /home/kszk-gitlab-deployer/kszkepzes-prod/ +# - docker-compose --no-ansi pull +# - docker-compose up -d +# - docker system prune -f +# variables: +# SSH_HOST: donald.sch.bme.hu # required +# SSH_USER: kszk-gitlab-deployer # default: kszk-gitlab-deployer +# SSH_PORT: 10122 # default: 22 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..4aca2988 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM node:14 + +WORKDIR /usr/src/app + +COPY . . + +EXPOSE 3000 +CMD ["npm", "run", "start"] \ No newline at end of file diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index c711696e..c8acc7cc 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,22 +1,21 @@ -version: "3.7" - -services: - app: - image: node:alpine - volumes: - - ./:/app - working_dir: /app - depends_on: - - mongo - environment: - NODE_ENV: development +version: '3.7' +services: + bodysch-backend-dev: + container_name: bodysch-backend-dev + image: registry.kszk.bme.hu/bodysch/backend:dev + restart: always ports: - - 8000:8000 - command: npm run start-dev - - mongo: + - '3030:3000' + links: + - bodysch-mongo-dev + env_file: + - .env + depends_on: + - bodysch-mongo-dev + bodysch-mongo-dev: + container_name: bodysch-mongo-dev image: mongo - expose: - - 27017 volumes: - - ./data/db:/data/db \ No newline at end of file + - ./data:/data/db + expose: + - '27017' -- GitLab