Sfoglia il codice sorgente

build: fix Docker build

Jonas Gloning 2 anni fa
parent
commit
aa16e733fa
6 ha cambiato i file con 84 aggiunte e 26 eliminazioni
  1. 6 0
      .dockerignore
  2. 28 0
      .github/workflows/docker.yml
  3. 6 0
      .github/workflows/release.yml
  4. 29 9
      .releaserc.json
  5. 15 7
      Dockerfile
  6. 0 10
      docker-compose.yml

+ 6 - 0
.dockerignore

@@ -0,0 +1,6 @@
+.git
+.nyc_output
+.parcel-cache
+coverage
+dist
+node_modules

+ 28 - 0
.github/workflows/docker.yml

@@ -0,0 +1,28 @@
+name: Docker build & publish
+
+on:
+    push:
+        branches: [ "master" ]
+    pull_request:
+        branches: [ "master" ]
+
+jobs:
+    docker:
+        runs-on: ubuntu-latest
+        steps:
+            - name: Set up Docker Buildx
+              uses: docker/setup-buildx-action@v2
+            - name: Login to Docker Hub
+              uses: docker/login-action@v2
+              with:
+                  username: ${{ secrets.DOCKERHUB_USERNAME }}
+                  password: ${{ secrets.DOCKERHUB_TOKEN }}
+            - name: Build
+              if: ${{ github.event_name == 'pull_request' }}
+              uses: docker/build-push-action@v3
+            - name: Build & publish
+              if: ${{ github.event_name == 'push' }}
+              uses: docker/build-push-action@v3
+              with:
+                  push: true
+                  tags: peerjs/peerjs-server-test:nightly

+ 6 - 0
.github/workflows/release.yml

@@ -9,6 +9,12 @@ jobs:
     name: Release
     runs-on: ubuntu-latest
     steps:
+      -
+        name: Login to Docker Hub
+        uses: docker/login-action@v2
+        with:
+            username: ${{ secrets.DOCKERHUB_USERNAME } }}
+            password: ${{ secrets.DOCKERHUB_TOKEN }}
       - name: Checkout
         uses: actions/checkout@v3
         with:

+ 29 - 9
.releaserc.json

@@ -1,11 +1,31 @@
 {
-	"branches": ["stable", { "name": "rc", "prerelease": true }],
-	"plugins": [
-		"@semantic-release/commit-analyzer",
-		"@semantic-release/release-notes-generator",
-		"@semantic-release/changelog",
-		"@semantic-release/npm",
-		"@semantic-release/git",
-		"@semantic-release/github"
-	]
+    "branches": [
+        "stable",
+        {
+            "name": "rc",
+            "prerelease": true
+        }
+    ],
+    "plugins": [
+        "@semantic-release/commit-analyzer",
+        "@semantic-release/release-notes-generator",
+        "@semantic-release/changelog",
+        "@semantic-release/npm",
+        "@semantic-release/git",
+        "@semantic-release/github",
+        [
+            "@codedependant/semantic-release-docker",
+            {
+                "dockerTags": [
+                    "{{#if prerelease.[0]}}{{prerelease.[0]}}{{else}}latest{{/if}}",
+                    "{{major}}-{{#if prerelease.[0]}}{{prerelease.[0]}}{{else}}latest{{/if}}",
+                    "{{major}}.{{minor}}-{{#if prerelease.[0]}}{{prerelease.[0]}}{{else}}latest{{/if}}",
+                    "{{version}}"
+                ],
+                "dockerImage": "peerjs-server-test",
+                "dockerFile": "Dockerfile",
+                "dockerProject": "peerjs"
+            }
+        ]
+    ]
 }

+ 15 - 7
Dockerfile

@@ -1,10 +1,18 @@
-FROM node:alpine
+FROM node:18.13.0 as build
 RUN mkdir /peer-server
 WORKDIR /peer-server
-COPY bin ./bin
-COPY dist ./dist
-COPY package.json .
-RUN npm install --production
+COPY package.json package-lock.json ./
+RUN npm clean-install
+COPY . ./
+RUN npm run build
+RUN npm run test
+
+FROM node:18.13.0-alpine as production
+RUN mkdir /peer-server
+WORKDIR /peer-server
+COPY package.json package-lock.json ./
+RUN npm clean-install --omit=dev
+COPY --from=build /peer-server/dist/bin/peerjs.js ./
 EXPOSE 9000
-ENTRYPOINT ["node", "bin/peerjs"]
-CMD [ "--port", "9000", "--path", "/myapp" ]
+ENTRYPOINT ["node", "peerjs.js"]
+CMD [ "--port", "9000" ]

+ 0 - 10
docker-compose.yml

@@ -1,10 +0,0 @@
-version: '3'
-
-services:
-  peerjs:
-    build: .
-    container_name: peerjs_server
-    expose:
-      - 9000
-    ports:
-      - "9000:9000"