ETC/Git

[Docker] Gitea로 나만의 Git 구축하기

Jade Choe 2022. 3. 3. 00:59
SMALL

시놀로지 DS116+을 사용하다가 성능과 1베이 용량에 아쉬움을 느껴 DS718+를 구매했다.

 

전에 작성해두었던 게시글을 토대로 Gogs를 다시 설치하려다가

718+는 Docker 사용이 가능해서 추후 복구가 편하도록 Docker 위에 올리기로 했....는데

 

한글로 쓰인 자료가 거의 없다...ㅜㅜ 그냥 되는대로 설치해 보기로 한다.

나중에 EC2나 회사 코로케이션 서버에 구축할 수도 있으니 최대한 시놀로지의 GUI없이 CLI에서만 구축해 보았다.

 

- 2024-01-08 수정

최근에 watchtower 컨테이너를 구성해서 컨테이너들이 자동업데이트 되게 해놓았는데...
당시 볼륨을 설정해놓지 않아 어젯밤 업데이트하며 컨테이너가 재생성되며 db가 싹 날아가버렸다.........
멍청한 청년.........
본문에 볼륨을 추가해 수정, docker-compose도 추가하였음.

1. Docker 네트워크 구성

$ sudo docker network create web-server-network

* 시놀로지 기본 계정으로 들어가면 docker 사용 시 관리자 권한이 필요하다.

2. Docker에 MySQL 및 Gitea 설치

2-1. docker-compose 사용

  • docker-compose.yaml 파일 작성
version: '3.1'
services:
  gitea:
    container_name: gitea
    image: gitea/gitea:latest
    restart: always
    volumes:
      - gitea-data:/data
    ports:
      - "3000:3000"
      - "222:22"
    networks:
      - web-server-network

  mysql:
    image: mysql:latest
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: <password>
    ports:
      - "3306:3306"
    volumes:
      - mysql-volume:/var/lib/mysql
    restart: unless-stopped
    networks:
      - web-server-network

networks:
  web-server-network:
    external: true

volumes:
  gitea-data:
    driver: local
  mysql-volume:
    driver: local

 

networks는 미리 만들어두었으므로 external: true로 두고,

volumes는 해당 볼륨이 없을 경우 새로 생성하도록 한다.

 

  • docker-compose로 실행
$ sudo docker-compose up -d


2-2. Docker에 직접 설치

- 볼륨 생성

$ sudo docker volume create mysql_volume
$ sudo docker volume create gitea_data

$ sudo docker pull mysql
$ sudo docker pull gitea/gitea

$ sudo docker run --name mysql-server -e \
MYSQL_ROOT_PASSWORD= -d -p 3306:3306 \
--network web-server-network mysql:latest \
-v mysql_volume:/var/lib/mysql

$ sudo docker run --name gitea -d -p 3000:3000 \
--network web-server-network gitea/gitea:latest \
-v gitea_data:/data

3. MySQL 접속

$ sudo docker exec -it mysql-server bash

# mysql -u root -p

4. gitea 데이터베이스 생성

mysql> CREATE DATABASE `gitea`;  
Query OK, 1 row affected (0.35sec)

5. Gitea 설치

http://synology-ip:3000/ 으로 접속하면 초기설정란이 나온다.

 

호스트에는 mysql 컨테이너명을 작성해주고

나머지는 입맛에 맞게 수정하면 된다.

 

역방향 프록시 사용 예정이라면 Server Domain에 시놀로지 IP, Gitea 기본 URL에 역방향프록시 적용될 URL을 적어주면 된다.

예:
ServerDomain: 192.168.0.5,
Gitea 기본 URL: https://git.mydomain.com/

 

잘못 입력했다면 컨테이너 내부에서 수정 가능하다.

$ sudo docker exec -it gitea bash

# vi /data/gitea/conf/app.ini

 

끝!

BIG