In diesem Video zeige ich dir, wie du deine Web App (egal ob Angular, React oder VueJS) ganz einfach als Docker Image in deiner eigenen privaten Registry hochlädst.
Hierzu verwende ich Github als Plattform um sowohl die Build Pipeline mit Github Actions anzulegen, als auch die Github Container Registry (GHCR) als kostenlosen Speicher für unsere Docker Images.
00:00 Intro
00:23 Erstellen von Web App
01:40 Dockerfile
02:58 NGINX Config File
04:11 lokaler Test Dockerfile
04:44 Anlegen von Repository
07:00 Erstellen von Personal Access Token
09:43 Hinzufügen Build Pipeline
13:21 Test von GHCR Image
15:54 Auto Build von Änderungen
Dockerfile
FROM node:18-alpine AS builder
WORKDIR /app
COPY public/ ./public
COPY src/ ./src
COPY package*.json tsconfig.json tsconfig.node.json index.html ./
RUN npm install
RUN npm run build
FROM nginx:latest
WORKDIR /app
COPY --from=builder /app/dist /usr/share/nginx/html
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf
nginx-custom.conf File
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html = 404;
}
}
Github Action Workflow
name: Node.js CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
uses: actions/checkout@v3
name: Deply to Github Container Registry
run: |
docker login --username YOUR_USERNAME --password ${{ secrets.GHCR_TOKEN }} ghcr.io
docker build . --tag ghcr.io/YOUR_USERNAME/YOUR_PROJECT_NAME:latest
docker push ghcr.io/YOUR_USERNAME/YOUR_PROJECT_NAME:latest