4 Commits

Author SHA1 Message Date
Dome 66cc550949 Update Dockerfile 2025-03-28 13:38:35 +01:00
Dome 3a0359c1b6 Update compose.yaml 2025-03-28 13:32:08 +01:00
Dome b560e2dc1e Update Dockerfile 2025-03-28 13:27:33 +01:00
Dome 8abc0ce856 Create docker-image.yml 2025-03-28 11:53:11 +01:00
3 changed files with 55 additions and 19 deletions
+29
View File
@@ -0,0 +1,29 @@
name: Build and Push Matrix-to Docker Image
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
push: true
tags: domoel/matrix-to:latest
+16 -14
View File
@@ -1,19 +1,21 @@
# Verwenden Sie ein Node.js-Image als Basis
FROM node:20-alpine
# Setzen Sie das Arbeitsverzeichnis im Container
# Stage 1: Build
FROM node:20.2-alpine AS build
WORKDIR /app
# Kopieren Sie die package.json und yarn.lock Dateien und installieren Sie die Abhängigkeiten
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile
# Kopieren Sie den Rest des Codes in das Arbeitsverzeichnis
RUN yarn install --frozen-lockfile --production && yarn cache clean
COPY . .
# Exponieren Sie den Port 5000
EXPOSE 5000
# Stage 2: Production
FROM nginx:alpine
COPY --from=build /app/build /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
# Starten Sie die Anwendung und setzen Sie die PORT-Umgebungsvariable auf 5000
ENV PORT=5000
CMD ["yarn", "start"]
# Expose port 80
EXPOSE 80
EXPOSE 443
# Healthcheck
HEALTHCHECK CMD curl --fail http://localhost:80 || exit 1
# Start Nginx server
CMD ["nginx", "-g", "daemon off;"]
+10 -5
View File
@@ -1,11 +1,16 @@
version: '3.8'
services:
matrix-to:
container_name: Matrix-to
web:
image: domoel/matrix-to:latest
ports:
- "5000:5000"
restart: unless-stopped
- "80:80"
environment:
- PORT=5000
- NODE_ENV=production
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:80"]
interval: 30s
timeout: 10s
retries: 3