Добавил 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