Merge branch 'main' of https://git.zetcraft.ru/CyberBloom/OgeetoCaseCyberGarden
Some checks failed
Create and publish a Docker image / Publish image (push) Failing after 26s
Create and publish a Docker image / Deploy image (push) Has been skipped

This commit is contained in:
Vsevo;od 2023-12-24 13:48:38 +03:00
commit dc53f7438f
4 changed files with 107 additions and 5 deletions

View File

@ -0,0 +1,59 @@
name: Create and publish a Docker image
on:
push:
branches: ["main"]
env:
REGISTRY: git.zetcraft.ru
jobs:
publish:
runs-on: ubuntu-latest
name: Publish image
container: catthehacker/ubuntu:act-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ gitea.actor }}
password: ${{ secrets.TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: https://github.com/docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ gitea.repository }}
- name: Build and push Docker image
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: ./
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
deploy:
needs: publish
name: Deploy image
runs-on: ubuntu-latest
steps:
- name: install ssh keys
# check this thread to understand why its needed:
# <https://stackoverflow.com/a/70447517>
run: |
install -m 600 -D /dev/null ~/.ssh/id_rsa
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
ssh-keyscan -H ${{ secrets.SSH_HOST }} > ~/.ssh/known_hosts
- name: connect and pull
run: ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "cd ${{ secrets.WORK_DIR }} && docker compose pull && docker compose up -d && docker image prune && exit"
- name: cleanup
run: rm -rf ~/.ssh

17
Dockerfile Normal file
View File

@ -0,0 +1,17 @@
FROM node:20-alpine3.17 AS builder
WORKDIR /app
COPY package.json package-lock.json .eslintrc.cjs vite.config.js index.html ./
COPY public/ public/
COPY src/ src/
RUN npm ci
RUN npm run build
FROM nginx:1.25.2-alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/build /usr/share/nginx/html
RUN touch /var/run/nginx.pid
RUN chown -R nginx:nginx /var/run/nginx.pid /usr/share/nginx/html /var/cache/nginx /var/log/nginx /etc/nginx/conf.d
USER nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

View File

@ -1,8 +1,25 @@
# React + Vite # CyberBloomFrontend
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. # Docker
Currently, two official plugins are available: ```bash
docker run -d -p 80:80 \
--name CyberBloom \
--restart=always \
-e TZ=Europe/Moscow \
git.zetcraft.ru/cyberbloom/ogeetocasecybergarden:main
```
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh # Docker Compose
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
```yml
services:
cyberbloomfrontend:
ports:
- '80:80'
container_name: CyberBloom
restart: always
environment:
- TZ=Europe/Moscow
image: 'git.zetcraft.ru/cyberbloom/ogeetocasecybergarden:main'
```

9
nginx.conf Normal file
View File

@ -0,0 +1,9 @@
server_tokens off;
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri /index.html;
}
}