From 3bc1f0d1fad9fa773529cc9c813608869b742e70 Mon Sep 17 00:00:00 2001 From: Corentin Thomasset Date: Thu, 23 Mar 2023 18:54:51 +0100 Subject: [PATCH] chore(docker): it-tools docker container --- .github/workflows/docker-release.yml | 56 ++++++++++++++++++++++++++++ Dockerfile | 13 +++++++ 2 files changed, 69 insertions(+) create mode 100644 .github/workflows/docker-release.yml create mode 100644 Dockerfile diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml new file mode 100644 index 00000000..51f936e8 --- /dev/null +++ b/.github/workflows/docker-release.yml @@ -0,0 +1,56 @@ +name: docker-release + +on: + push: + branches: + - 'main' + +jobs: + ci: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - run: corepack enable + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm i + + - name: Run linters + run: pnpm lint + + - name: Run unit test + run: pnpm test + + - name: Build the app + run: pnpm build + + build: + runs-on: ubuntu-latest + needs: + - ci + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + push: true + tags: corentinth/it-tools:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..af4776c1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +# build stage +FROM node:lts-alpine as build-stage +WORKDIR /app +COPY . . +RUN npm install -g pnpm +RUN pnpm i --frozen-lockfile +RUN pnpm build + +# production stage +FROM nginx:stable-alpine as production-stage +COPY --from=build-stage /app/dist /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file