From eb7a699cdab9bcc2127d22a4ff3b074dc1d373e1 Mon Sep 17 00:00:00 2001 From: sweetim Date: Sat, 11 Mar 2023 16:17:25 +0900 Subject: [PATCH 1/6] fixed #31 --- .dockerignore | 3 +++ docker/Dockerfile | 15 +++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 .dockerignore create mode 100644 docker/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7079b99 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +node_modules +coverage +lib diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..fc0a387 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,15 @@ +FROM node:18-alpine as builder + +WORKDIR /app +COPY . . +RUN npm ci +RUN npm run build + +FROM node:18-alpine + +WORKDIR /app +COPY --from=builder /app/package.json /app/LICENSE ./ +COPY --from=builder /app/lib ./lib +RUN npm install + +CMD ["node", "./lib/bin.js"] From 98e2c086b5ccd48a881e6204380a34c79d48704e Mon Sep 17 00:00:00 2001 From: sweetim Date: Sat, 11 Mar 2023 17:03:17 +0900 Subject: [PATCH 2/6] added github action --- .github/workflows/build-and-test.yml | 19 +++++++++++++++++++ .../workflows/release-and-publish-package.yml | 17 +++++++++++++++++ docker/Dockerfile => Dockerfile | 0 3 files changed, 36 insertions(+) rename docker/Dockerfile => Dockerfile (100%) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 4f37ea3..b89f973 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -52,6 +52,25 @@ jobs: name: code-coverage-report path: coverage/** + build-docker: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v3 + - name: lint dockerfile + uses: luke142367/Docker-Lint-Action@v1.0.0 + with: + target: Dockerfile + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: docker/setup-buildx-action@v2.5.0 + - name: build docker image + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + tags: ${{ secrets.DOCKERHUB_USERNAME }}/linux-top-parser:latest + code-analysis: runs-on: ubuntu-latest needs: build diff --git a/.github/workflows/release-and-publish-package.yml b/.github/workflows/release-and-publish-package.yml index 2eeb368..1dea4e9 100644 --- a/.github/workflows/release-and-publish-package.yml +++ b/.github/workflows/release-and-publish-package.yml @@ -13,6 +13,7 @@ on: - major env: + GITHUB_REGISTRY: ghcr.io NODE_VERSION: 18.x jobs: @@ -72,3 +73,19 @@ jobs: run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + + - name: log in to the container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ${{ env.GITHUB_REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - uses: docker/setup-buildx-action@v2.5.0 + - name: publish docker image + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + push: true + tags: ${{ env.GITHUB_REGISTRY }}/sweetim/linux-top-parser:${{ steps.get_latest_git_tag.outputs.latest_git_tag }} diff --git a/docker/Dockerfile b/Dockerfile similarity index 100% rename from docker/Dockerfile rename to Dockerfile From e215b04c74e9caf47f4ad2190ad9ad1f799a2fa1 Mon Sep 17 00:00:00 2001 From: sweetim Date: Sat, 11 Mar 2023 17:16:51 +0900 Subject: [PATCH 3/6] fix syntax --- .github/workflows/build-and-test.yml | 10 +++++----- .github/workflows/release-and-publish-package.yml | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index b89f973..2cb8687 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -65,11 +65,11 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - uses: docker/setup-buildx-action@v2.5.0 - name: build docker image - uses: docker/build-push-action@v4 - with: - context: . - file: ./Dockerfile - tags: ${{ secrets.DOCKERHUB_USERNAME }}/linux-top-parser:latest + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + tags: ${{ secrets.DOCKERHUB_USERNAME }}/linux-top-parser:latest code-analysis: runs-on: ubuntu-latest diff --git a/.github/workflows/release-and-publish-package.yml b/.github/workflows/release-and-publish-package.yml index 1dea4e9..74807dd 100644 --- a/.github/workflows/release-and-publish-package.yml +++ b/.github/workflows/release-and-publish-package.yml @@ -83,9 +83,9 @@ jobs: - uses: docker/setup-buildx-action@v2.5.0 - name: publish docker image - uses: docker/build-push-action@v4 - with: - context: . - file: ./Dockerfile - push: true - tags: ${{ env.GITHUB_REGISTRY }}/sweetim/linux-top-parser:${{ steps.get_latest_git_tag.outputs.latest_git_tag }} + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + push: true + tags: ${{ env.GITHUB_REGISTRY }}/sweetim/linux-top-parser:${{ steps.get_latest_git_tag.outputs.latest_git_tag }} From a216c65e1668b83d97f6fbcb5016810de6095018 Mon Sep 17 00:00:00 2001 From: sweetim Date: Sat, 11 Mar 2023 17:52:05 +0900 Subject: [PATCH 4/6] fix lint error --- Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index fc0a387..17b72f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,21 @@ FROM node:18-alpine as builder WORKDIR /app -COPY . . +COPY ./src ./src +COPY package.json LICENSE . RUN npm ci RUN npm run build FROM node:18-alpine +RUN addgroup -S user \ + && adduser -S user -G user + WORKDIR /app COPY --from=builder /app/package.json /app/LICENSE ./ COPY --from=builder /app/lib ./lib RUN npm install +USER user + CMD ["node", "./lib/bin.js"] From 77d7fdd4a624f59bdd19ffdeb6aa16590574e98b Mon Sep 17 00:00:00 2001 From: sweetim Date: Sat, 11 Mar 2023 17:54:00 +0900 Subject: [PATCH 5/6] fix lint error --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 17b72f3..66017bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM node:18-alpine as builder WORKDIR /app COPY ./src ./src -COPY package.json LICENSE . +COPY package.json LICENSE ./ RUN npm ci RUN npm run build From 3b16ddd26c90cf66a557f7eaa648660f190c100c Mon Sep 17 00:00:00 2001 From: sweetim Date: Sat, 11 Mar 2023 21:28:35 +0900 Subject: [PATCH 6/6] change to install production --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 66017bf..c4c76e8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN addgroup -S user \ WORKDIR /app COPY --from=builder /app/package.json /app/LICENSE ./ COPY --from=builder /app/lib ./lib -RUN npm install +RUN npm install --production USER user