From 37eb8de494ce4d169f7e1f48267727ceeacebae0 Mon Sep 17 00:00:00 2001 From: Max Flach Date: Wed, 27 Jul 2022 18:23:35 +0200 Subject: [PATCH] Added build files --- .dockerignore | 4 ++++ .gitlab-ci.yml | 35 +++++++++++++++++++++++++++++++++++ Caddyfile | 5 +++++ Dockerfile | 14 ++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitlab-ci.yml create mode 100644 Caddyfile create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..33cdc56 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +node_modules/ +.git +.envrc +.gitignore diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..1350d98 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,35 @@ +stages: + - build + - deploy + +variables: + TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest + TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA + +build: + image: docker:latest + stage: build + tags: + - deployment + script: + - echo "Building" + - export + - docker build -t $TAG_COMMIT -t $TAG_LATEST . + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker push $TAG_COMMIT + - docker push $TAG_LATEST + +deploy: + image: docker:latest + stage: deploy + tags: + - deployment + script: + - echo "Deploying" + - chmod og= $ID_RSA + - apk update && apk add openssh-client + - ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY" + - ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker pull $TAG_COMMIT" + - ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker container rm -f $DOCKER_NAME || true" + - ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "docker run -d --network=$DOCKER_NETWORK --restart unless-stopped --name $DOCKER_NAME $TAG_COMMIT" + - ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "/usr/local/bin/caddycontrol -host $CADDYCONTROL_HOST -dial $CADDYCONTROL_DIAL" diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..3c4f635 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,5 @@ +:80 { + root * /usr/share/caddy + try_files {path} /index.html + file_server +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d58b822 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM node:17.1.0-alpine3.12 as builder +WORKDIR /app +COPY package.json ./ +COPY package-lock.json ./ +RUN npm install +COPY ./ ./ +RUN NODE_ENV=production npm run build + + +FROM caddy:2-alpine +WORKDIR /usr/share/caddy +COPY Caddyfile /etc/caddy/Caddyfile +COPY --from=builder ./app/dist . +