aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/docker-release.yml56
-rw-r--r--Dockerfile13
2 files changed, 69 insertions, 0 deletions
diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml
new file mode 100644
index 0000000..51f936e
--- /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 0000000..af4776c
--- /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