diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..004ce00796875fe4c95e25da97a1e5d892f6f504 --- /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 0000000000000000000000000000000000000000..4aca298855fb6289a1e0126b04c90da18f6730b3 --- /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 c711696e309f391c1bb30a39c48e65c3ad3bbeaf..c8acc7cce54ceaad640d31a519b077128f229618 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'