From 1b55a94b179455e182f319e8fd7781e14a04cc5a Mon Sep 17 00:00:00 2001 From: MarcUs7i Date: Wed, 19 Mar 2025 16:27:00 +0100 Subject: [PATCH] Added docker (refs #1) --- .github/workflows/build.yml | 38 +++++++++++++++++++++++++++++++++++++ Dockerfile | 15 +++++++++++++++ docker-compose-build.yml | 9 +++++++++ docker-compose.yml | 9 +++++++++ 4 files changed, 71 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 Dockerfile create mode 100644 docker-compose-build.yml create mode 100644 docker-compose.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..e9d5a1c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,38 @@ +name: Build Docker Image + +on: + workflow_dispatch: + # Manual trigger + release: + types: [created] + # Automatic trigger on release creation + +jobs: + build: + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v2 + with: + context: . + push: true + platforms: linux/amd64, linux/arm64/v8, linux/arm/v7 + tags: ghcr.io/marcus7i/statuspage:${{ github.ref_name }},ghcr.io/marcus7i/statuspage:latest \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..63a63e0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM node:18-alpine + +RUN npm install -g http-server + +WORKDIR /app +COPY package*.json ./ +RUN npm install + +COPY . . +VOLUME /app/config.js +EXPOSE 8080 + +RUN echo '#!/bin/sh\nnode watcher.js & http-server ./static -p 8080\n' > /app/start.sh && \ + chmod +x /app/start.sh +CMD ["/app/start.sh"] \ No newline at end of file diff --git a/docker-compose-build.yml b/docker-compose-build.yml new file mode 100644 index 0000000..55789b2 --- /dev/null +++ b/docker-compose-build.yml @@ -0,0 +1,9 @@ +services: + app: + build: + context: . + dockerfile: Dockerfile + ports: + - "8080:8080" + volumes: + - ./config.js:/app/config.js \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8f9febc --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +services: + statuspage: + image: ghcr.io/marcus7i/statuspage:latest + container_name: statuspage + restart: unless-stopped + ports: + - "8080:8080" + volumes: + - ./config.js:/app/config.js \ No newline at end of file