- Published on
使用docker安装gitea
- Authors
- Name
- Hotpotzz
- @github
使用docker安装gitea
1.安装 Docker
添加 GPG key 和 Docker 仓库到 APT 源
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
检查docker版本
docker version
设置开机自启
systemctl enable docker.service
2.编写docker-compose.yml
新建docker-compose.yml文件,路径可以自己选择
cd /usr/local
mkdir gitea
touch docker-compose.yml
将以下内容写入文件内
services:
db:
image: postgres:latest
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
restart: always
volumes:
- postgres_data:/var/lib/postgresql/data
gitea:
image: gitea/gitea:latest
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=postgres
- DB_HOST=db:5432
- DB_NAME=gitea
- DB_USER=gitea
- DB_PASSWD=gitea
restart: always
volumes:
- gitea_data:/data
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx:/etc/nginx/conf.d
- /etc/letsencrypt:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
depends_on:
- gitea
restart: always
volumes:
postgres_data:
gitea_data:
这里使用了postgresql数据库,如果有其他的要求可以自行修改
在当前目录下创建nginx文件夹,创建nginx配置文件
mkdir nginx
touch gitea.conf
在gitea.conf文件内添加以下内容
server {
listen 443 ssl;
server_name <你的域名>; # 替换为你的域名
ssl_certificate /etc/letsencrypt/live/<你的域名>/fullchain.pem; # 替换为您的证书路径
ssl_certificate_key /etc/letsencrypt/live/<你的域名>/privkey.pem; # 替换为您的证书密钥路径
location / {
proxy_pass http://23.94.185.110:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
# 替换为你的域名
if ($host = <你的域名>) {
return 301 https://$host$request_uri;
} # 把http的域名请求转成https
listen 80;
# 替换为你的域名
server_name <你的域名>;
return 404;
}
将 <你的域名>
替换为实际的域名,并且根据你的方式配置ssl证书,注意证书路径不一样的话,在上面的gitea.conf文件的对应处修改
运行docker容器,需要在对应的docker-compose.yml目录下
docker compose up -d
此时输入你的域名即可访问gitea,注意第一次需配置,在填写域名的地方填写你的域名,其余不用改,确认后会有一会的初始化的时间,之后就可以正常使用了,没有初始账号,第一个注册的账号为超级管理员。