欢迎光临
我们一直在努力

如何在 Ubuntu 20.04 上使用 Docker 安装 Gitea

Gitea 是一个免费的开源软件包,用于自托管 Git 服务器。它还提供协作功能,如错误跟踪、维基和代码审查。Gitea 是一个社区驱动的轻量级代码解决方案,用 Go 编写。

开发人员在工作时需要定期将他们的代码更改合并到一个中央存储库中。您可能需要为您的团队拥有一个私人中央存储库,您将自己托管和管理该存储库。为此,您可以使用 Gitea。它类似于 GitHub、Bitbucket 等。

在本教程中,我们将学习如何在Ubuntu 20.04使用 docker 安装 Gitea

先决条件

  • 一个安装了 Ubuntu 20.04 的主机
  • 具有 sudo 权限的用户

第 1 步:在 Ubuntu 上安装 Docker

Gitea 从 Docker 中心提供其 Docker 镜像的最新稳定版本。它可以从源代码、二进制文件安装包安装。这里我们部署为 Docker 镜像。

要安装 docker,您需要安装一些依赖软件包:

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

现在让我们添加 docker 存储库的 GP 密钥:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

现在将 Docker 添加到 APT 源。它会自动更新缓存。

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

现在使用以下命令安装 docker:

$ sudo apt install docker-ce

将用户添加到 docker 组,以便可以在没有 sudo 权限的情况下使用docker 命令

$ sudo usermod -aG docker username

第 2 步:运行 Nginx docker

要启用 HTTPS,您可以使用 TLS 终止代理,例如 Nginx、Apache2 或 Caddy。在我们的例子中,我们将运行一个独立的容器作为我们的 Nginx 反向代理。

$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy

当您集成证书时,它将帮助我们将所有默认 HTTP 流量重定向到 HTTPS。您应该注意到映射卷以集成您的证书/etc/nginx/certs

现在在防火墙上打开端口 80 和 443:

$ sudo ufw allow 80,443/tcp

另外,如果还不能访问,请确保在启用 UFW 之前打开 ssh

$ sudo ufw allow 'OpenSSH'

如果还不能访问,就启用 UFW

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

第 3 步:运行 MySQL docker

Gitea 需要一个数据库来保存它的数据。Gitea 支持 MySQL/MariaDB、PostgreSQL、SQLite 和 MSSQL。在这里,我们将使用MySQL 容器来保存所有数据。

$ docker run -d --name mysql-gitea -e [email protected] -v /opt/docker-volume/mysql-gitea:/var/lib/mysql mysql:5.7

我们可以检查我们的容器是否正在运行

$ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS          PORTS                                                                      NAMES
6d41fec8b0e4   mysql:5.7             "docker-entrypoint.s…"   2 hours ago   Up 2 hours      3306/tcp, 33060/tcp                                                        mysql-gitea
ec9d83a3944e   etopian/nginx-proxy   "forego start -r"        3 days ago    Up 24 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx

默认情况下,Gitea 侦听端口 3000 上的连接以及 HTTP 和 HTTPS 端口上的反向代理。如果您有防火墙,请确保端口已打开以访问 Gitea Web 界面。

让我们看看我们的 MySQL 容器的一些细节,比如 IP 地址,因为我们稍后会需要它

$ docker inspect mysql-gitea
[
    {
        "Id": "6d41fec8b0e4b6ca465444d5cfea11913decddfd7586f4796702463cf08897fe",
        "Created": "2021-10-21T23:48:20.709365573Z",
...
...
        "Networks": {
                        "bridge": {
                            "IPAMConfig": null,
                            "Links": null,
                            "Aliases": null,
                            "NetworkID": "3f0b32613606db9e0761af15b7fa5d7f7c3b86f4d3b4668d574c579b9468915f",
                            "EndpointID": "f029fc1797c70d090da19d30cb31ca34c1b6baf4537a807397e931f87262f867",
                            "Gateway": "172.17.0.1",
                            "IPAddress": "172.17.0.3",
                            "IPPrefixLen": 16,
                            "IPv6Gateway": "",
                            "GlobalIPv6Address": "",
                            "GlobalIPv6PrefixLen": 0,
                            "MacAddress": "02:42:ac:11:00:03",
                            "DriverOpts": null
                        }
...
...

现在让我们连接到 MySQL 容器

$ docker container exec -it mysql-gitea bash

然后访问MySQL命令行

# mysql -u root [email protected]

现在为 Gitea 创建数据库和用户

mysql> CREATE USER 'gitea-user'@'%' IDENTIFIED BY '[email protected][email protected]';
mysql> CREATE DATABASE giteadb;
mysql> GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea-user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;

现在也退出容器

# exit;

步骤 4:配置 SSL 证书

为了通过安全域名访问您的 Gitea,您需要将 SSL 证书复制到 Nginx 文件夹中。您可以使用免费的 Let’s Encrypt 证书或来自证书颁发机构的证书。

复制证书

$ cp gitea.websitefortesting.com.crt /etc/nginx/certs/

复制密钥

$ cp gitea.websitefortesting.com.key /etc/nginx/certs/

第五步:运行Gitea docker

运行Gitea,我们需要配置之前已经启动的MySQL容器的一些信息,例如:

  • 数据库类型 mysql
  • mysql容器的地址ip
  • 数据库的名称
  • 数据库用户名
  • 数据库用户密码
  • gitea 使用的端口
$ docker run -d --name gitea-selfhosted -v /opt/docker-volume/gitea-selfhosted:/data -p 3000:3000 -e VIRTUAL_HOST=gitea.websitefortesting.com -e VIRTUAL_PORT=3000 -e USER_UID=1001 -e USER_GID=1001 -e DB_TYPE=mysql -e DB_HOST=172.17.0.3:3306 -e DB_NAME=giteadb -e DB_USER=gitea-user -e [email protected][email protected] gitea/gitea:1.8

我们可以检查它是否正在运行

$ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                      NAMES
321b870a0735   gitea/gitea:1.8       "/usr/bin/entrypoint…"   11 seconds ago   Up 10 seconds   22/tcp, 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                          gitea-selfhosted
6d41fec8b0e4   mysql:5.7             "docker-entrypoint.s…"   2 hours ago      Up 3 minutes    3306/tcp, 33060/tcp                                                        mysql-gitea
ec9d83a3944e   etopian/nginx-proxy   "forego start -r"        3 days ago       Up 29 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx

现在您可以尝试使用 URL https://giteadomain.com 访问 Gitea

现在转到“登录页面”以继续我们的安装过程。您可以个性化配置一些信息,例如站点标题。

确保在需要的地方指明域名。还要指出管理员帐户的信息

安装完成后,您就可以登录

您可以创建一个新的存储库

你的第一个仓库

结论

现在您知道在 Ubuntu 20.04 上使用 Docker 安装 Gitea 的所有步骤——您的代码的私有中央存储库。您将能够根据自己的需要管理它。

via:https://linoxide.com/install-gitea-using-docker-on-ubuntu/

窗外天空
关注公众号『窗外天空』

获取更多建站运营运维新知!
互联网创业、前沿技术......

赞(0) 打赏
文章名称:《如何在 Ubuntu 20.04 上使用 Docker 安装 Gitea》
文章链接:https://www.nixonli.com/24342.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏