Deploy Projects from Gitea Source with Coolify

조건 : Mkdocs를 이용하여 기술문서를 만들고 coolify를 사용해 배포합니다.
이미 mkdocs 사용하여 기술문서를 작성하고, gitea 에 push 하였습니다. 보다 쉽게 배포하기 위해서 Dockerfile를 이용합니다.
아래는 예시입니다.
아래는 예시입니다. (DockerFile) 관련 내용은 게시글 아래에 mkdocs deploy 관련글을 확인하세요.
```
=============================================================================MkDocs Flutter 문서 사이트 Dockerfile=============================================================================1단계: 빌드 환경
FROM python:3.11-slim as builder
작업 디렉토리 설정
WORKDIR /app
시스템 의존성 설치 (빌드 시에만 필요)
RUN apt-get update && apt-get install -y
git
build-essential
&& rm -rf /var/lib/apt/lists/*
Python 의존성 복사 및 설치
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip &&
pip install --no-cache-dir -r requirements.txt
프로젝트 파일 복사
COPY . .
MkDocs 빌드
RUN mkdocs build --clean
=============================================================================2단계: 운영 환경 (Nginx)=============================================================================
FROM nginx:alpine as production
메타데이터 라벨
LABEL maintainer="Heesung Jin (kage2k)"
LABEL description="Flutter Documentation Site with MkDocs Material"
LABEL version="2.0"
빌드된 사이트를 Nginx로 복사
COPY --from=builder /app/site /usr/share/nginx/html
사용자 정의 Nginx 설정 복사
COPY nginx.conf /etc/nginx/nginx.conf
Nginx 기본 설정 제거 및 권한 설정
RUN rm -f /etc/nginx/conf.d/default.conf &&
chown -R nginx:nginx /usr/share/nginx/html &&
chmod -R 755 /usr/share/nginx/html
포트 노출
EXPOSE 80
헬스체크 추가
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3
CMD curl -f http://localhost/ || exit 1
Nginx 실행
CMD ["nginx", "-g", "daemon off;"]
```
ssh-key 생성

적당한 이름으로 만든 뒤에, Public Key를 gitea 쪽에 넣어야한다.
gitea에 넣는 방법은 2가지
- 전체 세팅에 넣는 것
- git project에 넣는 것 방법은 같으니 편한것으로 진행한다.
gitea 에 접속 > 세팅 > 왼쪽메뉴 > SSH/GPG키 > 키추가 > 위에서 얻은 Public Key를 넣는다.
coolify project 생성

Select private key 선택이 나온다. 그렇다면 위에 ssh-key에서 지정한 이름의 private key를 선택 한다.

주소랑 Branch를 지정하고 계속
설정 변경( in coolify project )
별반 변경할 것은 없다. 중간에 Domains 부분은 사용자가 원하는 주소로 변경하고, mkdocs는 port가 80 이라서 지정되었다.
Webhooks 를 연결해서 gitea push 되면 바로 Deploy 되도록 할 수 있다.
Webhooks 연결관련하여 이전 게시글을 확인하시면 도움됩니다.
