对比
https://docs.gitea.io/zh-cn/comparison/
gitea
https://docs.gitea.io/zh-cn/install-with-docker/
常见问题
SMTP无法使用
由于默认先使用25端口进行连接,但很多云服务商已经禁用25端口,所以会出现授权超时情形。
修改方式:链接
或直接使用镜像:
docker pull jnan77/zc-gitea:1.14.2.r1
使用docker-compose部署
gitea:
image: gitea/gitea:1.14.2
container_name: gitea
environment:
- RUN_MODE=prod
- USER_UID=1000
- USER_GID=1000
#- ROOT_URL=
- DB_TYPE=mysql
- DB_HOST=mysql
- DB_NAME=gitea
- DB_USER=zc
- DB_PASSWD=Mydb2018
- SECRET_KEY=11232323232dsfsfdsfdsfsd
- INSTALL_LOCK=false
#- DISABLE_REGISTRATION=
restart: always
networks:
- custom_net1
volumes:
- ./gitea/data:/data
ports:
- "3000:3000"
- "222:22"
depends_on:
- mysql
配置参数
(默认值以粗体显示)
- APP_NAME:“Gitea: Git with a cup of tea”:应用程序名称,在页面标题中使用。
- RUN_MODE:prod:应用程序运行模式,会影响性能和调试。“dev”,“prod”或”test”。
- DOMAIN:localhost:此服务器的域名,用于 Gitea UI 中显示的 http 克隆 URL。
- SSH_DOMAIN:localhost:该服务器的域名,用于 Gitea UI 中显示的 ssh 克隆 URL。如果启用了安装页面,则 SSH 域服务器将采用以下形式的 DOMAIN 值(保存时将覆盖此设置)。
- SSH_PORT:22:克隆 URL 中显示的 SSH 端口。
- SSH_LISTEN_PORT:%(SSH_PORT)s:内置 SSH 服务器的端口。
- DISABLE_SSH:false:如果不可用,请禁用 SSH 功能。如果要禁用 SSH 功能,则在安装 Gitea 时应将 SSH 端口设置为 0。
- HTTP_PORT:3000:HTTP 监听端口。
- ROOT_URL:“”:覆盖自动生成的公共 URL。如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。
- LFS_START_SERVER:false:启用 git-lfs 支持。
- DB_TYPE:sqlite3:正在使用的数据库类型[mysql,postgres,mssql,sqlite3]。
- DB_HOST:localhost:3306:数据库主机地址和端口。
- DB_NAME:gitea:数据库名称。
- DB_USER:root:数据库用户名。
- DB_PASSWD:“
” :数据库用户密码。如果您在密码中使用特殊字符,请使用“您的密码”进行引用。 - INSTALL_LOCK:false:禁止访问安装页面。
- SECRET_KEY:“” :全局密钥。这应该更改。如果它具有一个值并且 INSTALL_LOCK 为空,则 INSTALL_LOCK 将自动设置为 true。
- DISABLE_REGISTRATION:false:禁用注册,之后只有管理员才能为用户创建帐户。
- REQUIRE_SIGNIN_VIEW:false:启用此选项可强制用户登录以查看任何页面。
- USER_UID:1000:在容器内运行 Gitea 的用户的 UID(Unix 用户 ID)。如果使用主机卷,则将其与 /data 卷的所有者的 UID 匹配(对于命名卷,则不需要这样做)。
USER_GID:1000:在容器内运行 Gitea 的用户的 GID(Unix 组 ID)。如果使用主机卷,则将其与 /data 卷的所有者的 GID 匹配(对于命名卷,则不需要这样做)
配置ssh
LOCAL_ROOT_URL 不能修改,即默认使用3000端口 ```bash
创建git用户,并删除密码,可通过/etc/passwd 查看
groupadd git && useradd git && useradd git -g git && passwd -d git
clone 项目出现 unrecognized command 则需要 usermod -s /bin/bash git
挂载本地git用户的ssh到容器
volumes:
创建命令
mkdir -p /app/gitea/ && touch /app/gitea/gitea && chmod +x /app/gitea/gitea 写入内容:ssh -p 2222 -o StrictHostKeyChecking=no git@127.0.0.1 “SSH_ORIGINAL_COMMAND=\”$SSH_ORIGINAL_COMMAND\” $0 $@”
暴露端口(与命令中端口保持一致)
ports:
[…]
- “127.0.0.1:2222:22”
<a name="WCg9M"></a>
## gogs
[https://gogs.io/](https://gogs.io/)
<a name="wppDR"></a>
### 使用docker-compose部署
```bash
image: gogs/gogs
ports:
- "3000:3000"
- "3022:22"
volumes:
- "./gogs/config:/data/gogs/conf" #app.ini
- "./gogs/logs:/app/gogs/log"
- "./gogs/data:/app/gogs/data"
app.ini
BRAND_NAME = 我的Git
RUN_USER = git
RUN_MODE = prod
[database]
TYPE = mysql
HOST = 10.0.2.69:3306
NAME = gogs
USER = zc
PASSWORD = pass
SSL_MODE = disable
PATH = /app/gogs/data/gogs.db
[repository]
ROOT = /app/gogs/data/repositories
[server]
DOMAIN = localhost
HTTP_PORT = 3000
EXTERNAL_URL = http://localhost:3000/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
[mailer]
ENABLED = false
[auth]
REQUIRE_EMAIL_CONFIRMATION = false
DISABLE_REGISTRATION = true
ENABLE_REGISTRATION_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = true
[user]
ENABLE_EMAIL_NOTIFICATION = false
[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = true
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
ROOT_PATH = /app/gogs/log
[security]
INSTALL_LOCK = true
SECRET_KEY = 0LGvlry