使用 Docker 安装 Gogs

时间:2022-04-29
本文章向大家介绍使用 Docker 安装 Gogs,主要内容包括docker-compose.yaml、HTTPS、升级、相关链接、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

使用 Docker Compose 安装 Gogs

GitHub:https://github.com/khs1994-docker/ci

docker-compose.yaml

编写 docker-compose.yml 文件

version: '3'

services:
  gogs:
    image: gogs/gogs
    ports:
      - "22:22"
      - "10080:3000"
    volumes:
      - ./data:/data
      - ./app.prod.ini:/data/gogs/conf/app.ini
      - ./ssl:/data/ssl
    links:
      - mysql:mysql
  mysql:
    image: mysql
    env_file: .env
#    ports:
#      - "3306:3306"
    volumes:
      - ./var/lib/mysql:/var/lib/mysql

编写 .env 文件

MYSQL_ROOT_PASSWORD=mytest

HTTPS

准备好 ssl 证书,上传到 ./ssl,两个 ssl 文件分别改名(名字与下边 app.prod.ini 文件中的配置名字匹配即可)。

修改 app.prod.ini 文件,修改内容

[server]
PROTOCOL = https
ROOT_URL = https://git.domain.com
CERT_FILE = /data/ssl/git.domain.com.crt
KEY_FILE = /data/ssl/git.domain.com.key

使用如下命令启动容器

$ docker-compose up -d

nginx 配置

server {
    listen  80;
    server_name git.domain.com;
    return        301 https://$server_name$request_uri;
}

upstream git {
   server 127.0.0.1:10080;
}

server {
    listen       443 ssl http2;
    server_name  git.domain.com;
    ssl_certificate      conf.d/ssl/git.domain.com.crt;
    ssl_certificate_key  conf.d/ssl/git.domain.com.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
            proxy_pass https://git;
    }
}

访问网页,开始安装。

升级

$ docker pull gogs/gogs

$ docker-compose down

$ docker-compose up -d

相关链接