Добавил CI/CD и README
This commit is contained in:
parent
d0a68ee019
commit
6e3cf5409c
25
.dockerignore
Normal file
25
.dockerignore
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
**/.dockerignore
|
||||||
|
**/.env
|
||||||
|
**/.git
|
||||||
|
**/.gitignore
|
||||||
|
**/.project
|
||||||
|
**/.settings
|
||||||
|
**/.toolstarget
|
||||||
|
**/.vs
|
||||||
|
**/.vscode
|
||||||
|
**/.idea
|
||||||
|
**/*.*proj.user
|
||||||
|
**/*.dbmdl
|
||||||
|
**/*.jfm
|
||||||
|
**/azds.yaml
|
||||||
|
**/bin
|
||||||
|
**/charts
|
||||||
|
**/docker-compose*
|
||||||
|
**/Dockerfile*
|
||||||
|
**/node_modules
|
||||||
|
**/npm-debug.log
|
||||||
|
**/obj
|
||||||
|
**/secrets.dev.yaml
|
||||||
|
**/values.dev.yaml
|
||||||
|
LICENSE
|
||||||
|
README.md
|
59
.gitea/workflows/gitea-push-docker.yml
Normal file
59
.gitea/workflows/gitea-push-docker.yml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
name: Create and publish a Docker image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["main"]
|
||||||
|
|
||||||
|
env:
|
||||||
|
REGISTRY: git.zetcraft.ru
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-push-image:
|
||||||
|
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: CyberBoom
|
||||||
|
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
|
19
CyberBoom/Dockerfile
Normal file
19
CyberBoom/Dockerfile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
|
||||||
|
WORKDIR /app
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
|
||||||
|
WORKDIR /src
|
||||||
|
COPY ["CyberBoom.csproj", "CyberBoom.csproj"]
|
||||||
|
RUN dotnet restore "CyberBoom.csproj"
|
||||||
|
COPY . .
|
||||||
|
WORKDIR "/src"
|
||||||
|
RUN dotnet build "CyberBoom.csproj" -c Release -o /app/build
|
||||||
|
|
||||||
|
FROM build AS publish
|
||||||
|
RUN dotnet publish "CyberBoom.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
||||||
|
|
||||||
|
FROM base AS final
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=publish /app/publish .
|
||||||
|
ENTRYPOINT ["dotnet", "CyberBoom.dll"]
|
38
CyberBoom/README.md
Normal file
38
CyberBoom/README.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# CyberBloomBackend
|
||||||
|
|
||||||
|
Технологии:
|
||||||
|
* ASP.NET
|
||||||
|
* PostgreSQL
|
||||||
|
* Docker + Compose
|
||||||
|
* Nginx
|
||||||
|
* [CI/CD](.gitea/workflows/gitea-push-docker.yml)
|
||||||
|
|
||||||
|
# Схема
|
||||||
|

|
||||||
|
|
||||||
|
# Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d -p 82:80 \
|
||||||
|
--name CyberBloomBackend \
|
||||||
|
--restart=always \
|
||||||
|
-e CONNECTION_STRING='Host=192.168.0.94;Port=5432;Database=backend;Username=prod;Password=' \
|
||||||
|
-e TZ=Europe/Moscow \
|
||||||
|
git.zetcraft.ru/cybebloom/cybebloombackend:main
|
||||||
|
```
|
||||||
|
|
||||||
|
# Docker Compose
|
||||||
|
|
||||||
|
```yml
|
||||||
|
version: '3.3'
|
||||||
|
services:
|
||||||
|
cyberbloomhackaton:
|
||||||
|
ports:
|
||||||
|
- '82:80'
|
||||||
|
container_name: CyberBoom
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- CONNECTION_STRING=Host=192.168.0.94;Port=5432;Database=backend;Username=prod;Password=
|
||||||
|
- TZ=Europe/Moscow
|
||||||
|
image: 'git.zetcraft.ru/cybebloom/cybebloombackend:main'
|
||||||
|
```
|
BIN
img/scheme.png
Normal file
BIN
img/scheme.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 149 KiB |
Loading…
x
Reference in New Issue
Block a user