This commit is contained in:
Sven 2026-02-13 20:36:27 +00:00 committed by GitHub
commit a65cc45e71
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 87 additions and 0 deletions

9
.dockerignore Normal file
View file

@ -0,0 +1,9 @@
node_modules
.git
.github
*.md
.gitignore
.editorconfig
package*.json
scripts
CLAUDE.md

41
.github/workflows/docker-image.yml vendored Normal file
View file

@ -0,0 +1,41 @@
name: Build and Publish Docker Image
on:
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v6
with:
ref: main
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Resolve short SHA
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
ghcr.io/${{ github.repository }}:latest
ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.sha_short }}

20
Dockerfile Normal file
View file

@ -0,0 +1,20 @@
# Multi-stage build für minimales Image
FROM nginx:alpine
# Statische Dateien kopieren
COPY index.html /usr/share/nginx/html/
# Nginx Konfiguration für SPA (falls nötig)
RUN echo 'server { \
listen 80; \
server_name _; \
root /usr/share/nginx/html; \
index index.html; \
location / { \
try_files $uri $uri/ /index.html; \
} \
}' > /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

17
docker-compose.yml Normal file
View file

@ -0,0 +1,17 @@
version: '3.8'
services:
asn-qr-label-generator:
build:
context: .
dockerfile: Dockerfile
container_name: asn-qr-label-generator
ports:
- "8080:80"
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "wget --spider --quiet http://127.0.0.1:80/ || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s