2026/5/21 10:25:23
网站建设
项目流程
简单公司网站源码,营口电商网站建设,wordpress评论添加验证码,企业关键词排名优化公司使用 Docker 安装
Gitea 在其 Docker Hub 组织内提供自动更新的 Docker 镜像。可以始终使用最新的稳定标签或使用其他服务来更新 Docker 镜像。
该参考设置指导用户完成基于 docker-compose 的设置#xff0c;但是 docker-compose 的安装不在本文档的范围之内。要安装 docke…使用 Docker 安装Gitea 在其 Docker Hub 组织内提供自动更新的 Docker 镜像。可以始终使用最新的稳定标签或使用其他服务来更新 Docker 镜像。该参考设置指导用户完成基于docker-compose的设置但是docker-compose的安装不在本文档的范围之内。要安装docker-compose本身请遵循官方安装说明。基本最简单的设置只是创建一个卷和一个网络然后将docker.gitea.com/gitea:latest镜像作为服务启动。由于没有可用的数据库因此可以使用 SQLite3 初始化数据库。创建一个类似gitea的目录并将以下内容粘贴到名为docker-compose.yml的文件中。请注意该卷应由配置文件中指定的 UID/GID 的用户/组拥有。如果您不授予卷正确的权限则容器可能无法启动。另请注意标签:latest将安装当前的开发版本。对于稳定的发行版您可以使用:1或指定某个发行版例如1.25.3。version:3networks:gitea:external:falseservices:server:image:docker.gitea.com/gitea:1.25.3container_name:giteaenvironment:-USER_UID1000-USER_GID1000restart:alwaysnetworks:-giteavolumes:-./gitea:/data-/etc/timezone:/etc/timezone:ro-/etc/localtime:/etc/localtime:roports:-3000:3000-222:22端口要将集成的 openSSH 守护进程和 Web 服务器绑定到其他端口请调整端口部分。通常只需更改主机端口容器内的端口保持原样即可。version: 3 networks: gitea: external: false services: server: image: docker.gitea.com/gitea:1.25.3 container_name: gitea environment: - USER_UID1000 - USER_GID1000 restart: always networks: - gitea volumes: - ./gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - - 3000:3000 - - 222:22 - 8080:3000 - 2221:22数据库MySQL 数据库要将 Gitea 与 MySQL 数据库结合使用请将这些更改应用于上面创建的docker-compose.yml文件。version: 3 networks: gitea: external: false services: server: image: docker.gitea.com/gitea:1.25.3 container_name: gitea environment: - USER_UID1000 - USER_GID1000 - GITEA__database__DB_TYPEmysql - GITEA__database__HOSTdb:3306 - GITEA__database__NAMEgitea - GITEA__database__USERgitea - GITEA__database__PASSWDgitea restart: always networks: - gitea volumes: - ./gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - 3000:3000 - 222:22 depends_on: - db db: image: docker.io/library/mysql:8 restart: always environment: - MYSQL_ROOT_PASSWORDgitea - MYSQL_USERgitea - MYSQL_PASSWORDgitea - MYSQL_DATABASEgitea networks: - gitea volumes: - ./mysql:/var/lib/mysqlPostgreSQL 数据库要将 Gitea 与 PostgreSQL 数据库结合使用请将这些更改应用于上面创建的docker-compose.yml文件。version: 3 networks: gitea: external: false services: server: image: docker.gitea.com/gitea:1.25.3 container_name: gitea environment: - USER_UID1000 - USER_GID1000 - GITEA__database__DB_TYPEpostgres - GITEA__database__HOSTdb:5432 - GITEA__database__NAMEgitea - GITEA__database__USERgitea - GITEA__database__PASSWDgitea restart: always networks: - gitea volumes: - ./gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - 3000:3000 - 222:22 depends_on: - db db: image: docker.io/library/postgres:14 restart: always environment: - POSTGRES_USERgitea - POSTGRES_PASSWORDgitea - POSTGRES_DBgitea networks: - gitea volumes: - ./postgres:/var/lib/postgresql/data命名卷要使用命名卷而不是主机卷请在docker-compose.yml配置中定义并使用命名卷。此更改将自动创建所需的卷。您无需担心命名卷的权限Docker 将自动处理该问题。version: 3 networks: gitea: external: false volumes: gitea: driver: local services: server: image: docker.gitea.com/gitea:1.25.3 container_name: gitea restart: always networks: - gitea volumes: - - ./gitea:/data - gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - 3000:3000 - 222:22MySQL 或 PostgreSQL 容器将需要分别创建。启动要基于docker-compose启动此设置请执行docker-compose up -d以在后台启动 Gitea。使用docker-compose ps将显示 Gitea 是否正确启动。可以使用docker-compose logs查看日志。要关闭设置请执行docker-compose down。这将停止并杀死容器。这些卷将仍然存在。注意如果在 http 上使用非 3000 端口请更改 app.ini 以匹配LOCAL_ROOT_URL http://localhost:3000/。安装通过docker-compose启动 Docker 安装后应该可以使用喜欢的浏览器访问 Gitea以完成安装。访问 http://server-ip:3000 并遵循安装向导。如果数据库是通过上述docker-compose设置启动的请注意必须将db用作数据库主机名。环境变量您可以通过环境变量配置 Gitea 的一些设置默认值以粗体显示APP_NAME“Gitea: Git with a cup of tea”应用程序名称在页面标题中使用。RUN_MODEprod应用程序运行模式会影响性能和调试。“dev”“prod或test”。DOMAINlocalhost此服务器的域名用于 Gitea UI 中显示的 http 克隆 URL。SSH_DOMAINlocalhost该服务器的域名用于 Gitea UI 中显示的 ssh 克隆 URL。如果启用了安装页面则 SSH 域服务器将采用以下形式的 DOMAIN 值保存时将覆盖此设置。SSH_PORT22克隆 URL 中显示的 SSH 端口。SSH_LISTEN_PORT%(SSH_PORT)s内置 SSH 服务器的端口。DISABLE_SSHfalse如果不可用请禁用 SSH 功能。如果要禁用 SSH 功能则在安装 Gitea 时应将 SSH 端口设置为0。HTTP_PORT3000HTTP 监听端口。ROOT_URL“”覆盖自动生成的公共 URL。如果内部 URL 和外部 URL 不匹配例如在 Docker 中这很有用。LFS_START_SERVERfalse启用 git-lfs 支持。DB_TYPEsqlite3正在使用的数据库类型[mysqlpostgresmssqlsqlite3]。DB_HOSTlocalhost:3306数据库主机地址和端口。DB_NAMEgitea数据库名称。DB_USERroot数据库用户名。DB_PASSWD“*empty*”数据库用户密码。如果您在密码中使用特殊字符请使用“您的密码”进行引用。INSTALL_LOCKfalse禁止访问安装页面。SECRET_KEY“”全局密钥。这应该更改。如果它具有一个值并且INSTALL_LOCK为空则INSTALL_LOCK将自动设置为true。DISABLE_REGISTRATIONfalse禁用注册之后只有管理员才能为用户创建帐户。REQUIRE_SIGNIN_VIEWfalse启用此选项可强制用户登录以查看任何页面。USER_UID1000在容器内运行 Gitea 的用户的 UIDUnix 用户 ID。如果使用主机卷则将其与/data卷的所有者的 UID 匹配对于命名卷则不需要这样做。USER_GID1000在容器内运行 Gitea 的用户的 GIDUnix 组 ID。如果使用主机卷则将其与/data卷的所有者的 GID 匹配对于命名卷则不需要这样做。自定义此处描述的定制文件应放在/data/gitea目录中。如果使用主机卷则访问这些文件非常容易对于命名卷可以通过另一个容器或通过直接访问/var/lib/docker/volumes/gitea_gitea/_data来完成。安装后配置文件将保存在/data/gitea/conf/app.ini中。升级注意❗❗确保已将数据卷到 Docker 容器外部的某个位置❗❗要将安装升级到最新版本# Edit docker-compose.yml to update the version, if you have one specified# Pull new imagesdocker-composepull# Start a new container, automatically removes old onedocker-composeup -d使用环境变量管理部署除了上面的环境变量之外app.ini中的任何设置都可以使用以下形式的环境变量进行设置或覆盖GITEA__SECTION_NAME__KEY_NAME。 每次 docker 容器启动时都会应用这些设置。 完整信息在这里。... services: server: environment: -GITEA__mailer__ENABLEDtrue -GITEA__mailer__FROM${GITEA__mailer__FROM:?GITEA__mailer__FROM not set}-GITEA__mailer__PROTOCOLsmtps -GITEA__mailer__HOST${GITEA__mailer__HOST:?GITEA__mailer__HOST not set}-GITEA__mailer__USER${GITEA__mailer__USER:-apikey}-GITEA__mailer__PASSWD${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}Gitea 将为每次新安装自动生成新的SECRET_KEY并将它们写入app.ini。 如果您想手动设置SECRET_KEY您可以使用以下 docker 命令来使用 Gitea 内置的方法生成SECRET_KEY。 安装后请妥善保管您的SECRET_KEY如若丢失则无法解密已加密的数据。以下命令将向stdout输出一个新的SECRET_KEY和INTERNAL_TOKEN然后您可以将其放入环境变量中。dockerrun -it --rm docker.gitea.com/gitea:1 gitea generate secret SECRET_KEYdockerrun -it --rm docker.gitea.com/gitea:1 gitea generate secret INTERNAL_TOKEN---services:server:environment:-GITEA__security__SECRET_KEY[value returned by generate secret SECRET_KEY]-GITEA__security__INTERNAL_TOKEN[value returned by generate secret INTERNAL_TOKEN]SSH 容器直通由于 SSH 在容器内运行因此如果需要 SSH 支持则需要将 SSH 从主机传递到容器。一种选择是在非标准端口上运行容器 SSH或将主机端口移至非标准端口。另一个可能更直接的选择是将 SSH 连接从主机转发到容器。下面将说明此设置。本指南假定您已经在名为git的主机上创建了一个用户该用户与容器值USER_UID/USER_GID共享相同的UID/GID。这些值可以在docker-compose.yml中设置为环境变量environment: -USER_UID1000-USER_GID1000接下来将主机的/home/git/.ssh装入容器。否则SSH 身份验证将无法在容器内运行。volumes: - /home/git/.ssh/:/data/git/.ssh现在需要在主机上创建 SSH 密钥对。该密钥对将用于向主机验证主机上的git用户。sudo-ugitssh-keygen -t rsa -b4096-CGitea Host Key在下一步中需要在主机上创建一个名为/usr/local/bin/gitea的文件具有可执行权限。该文件将发出从主机到容器的 SSH 转发。将以下内容添加到/usr/local/bin/giteassh-p2222-oStrictHostKeyCheckingno git127.0.0.1SSH_ORIGINAL_COMMAND\$SSH_ORIGINAL_COMMAND\$0$为了使转发正常工作需要将容器22的 SSH 端口映射到docker-compose.yml中的主机端口 2222。由于此端口不需要暴露给外界因此可以将其映射到主机的localhostports:# [...]-127.0.0.1:2222:22另外主机上的/home/git/.ssh/authorized_keys需要修改。它需要以与 Gitea 容器内的authorized_keys相同的方式进行操作。因此将您在上面创建的密钥“Gitea 主机密钥”的公共密钥添加到/home/git/.ssh/authorized_keys。这可以通过echo $(cat /home/git/.ssh/id_rsa.pub) /home/git/.ssh/authorized_keys完成。重要提示来自git用户的公钥需要“按原样”添加而通过 Gitea 网络界面添加的所有其他公钥将以command/app [...]作为前缀。该文件应该看起来像# SSH pubkey from git userssh-rsaGitea Host Key# other keys from userscommand/usr/local/bin/gitea --config/data/gitea/conf/app.ini serv key-1,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-ptyuser pubkey这是详细的说明当发出 SSH 请求时会发生什么使用git用户向主机发出 SSH 请求例如git clone gitdomain:user/repo.git。在/home/git/.ssh/authorized_keys中该命令执行/usr/local/bin/gitea脚本。/usr/local/bin/gitea将 SSH 请求转发到端口 2222该端口已映射到容器的 SSH 端口22。由于/home/git/.ssh/authorized_keys中存在git用户的公钥因此身份验证主机 → 容器成功并且 SSH 请求转发到在 docker 容器中运行的 Gitea。如果在 Gitea Web 界面中添加了新的 SSH 密钥它将以与现有密钥相同的方式附加到.ssh/authorized_keys中。注意SSH 容器直通仅在以下情况下有效在容器中使用opensshd如果未将AuthorizedKeysCommand与SSH_CREATE_AUTHORIZED_KEYS_FILE false结合使用以禁用授权文件密钥生成LOCAL_ROOT_URL不变source使用 Docker 安装 | Gitea Documentation