【代码仓库】使用Nginx搭建代码仓库 - 快速部署轻量级代码版本管理系统

sockstack / 1398 / 2023-07-28 22:40:23
使用 Docker 从零开始搭建私人代码仓库

ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。
https://ckai.xyz

通过《使用docker从零开始搭建私人代码仓库之MySQL搭建》和《使用docker从零开始搭建私人代码仓库之gogs搭建》的搭建其实已经可以搭建成功了代码仓库的了,但是为了访问方便,我们有时候需要绑定域名,那么我们可以通过nginx进行转发。

添加nginx容器

打开上一个教程中的docker-compose.yml文件,填入如下内容:

  1. gogs_nginx:
  2. build:
  3. context: nginx
  4. tty: true
  5. depends_on:
  6. - gogs
  7. restart: always
  8. networks:
  9. frontend:
  10. ports:
  11. - 80:80
  12. volumes:
  13. - ./nginx/conf:/etc/nginx/conf.d
  14. - ${DATA_DIR}/nginx/conf:/var/log/nginx

最终docker-compose.yml文件内容如下:

  1. version: "3"
  2. networks:
  3. frontend:
  4. services:
  5. mysql:
  6. image: mysql:${MYSQL_VERSION}
  7. networks:
  8. frontend:
  9. tty: true
  10. restart: always
  11. ports:
  12. - 3306:3306
  13. volumes:
  14. - ${DATA_DIR}/mysql/:/var/lib/mysql
  15. environment:
  16. - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
  17. - MYSQL_USER=${MYSQL_USER}
  18. - MYSQL_PASSWORD=${MYSQL_PASSWORD}
  19. gogs:
  20. image: gogs/gogs
  21. depends_on:
  22. - mysql
  23. tty: true
  24. networks:
  25. frontend:
  26. restart: always
  27. volumes:
  28. - ${DATA_DIR}/gogs:/data
  29. gogs_nginx:
  30. build:
  31. context: nginx
  32. tty: true
  33. depends_on:
  34. - gogs
  35. restart: always
  36. networks:
  37. frontend:
  38. ports:
  39. - 80:80
  40. volumes:
  41. - ./nginx_conf:/etc/nginx/conf.d
  42. - ${DATA_DIR}/nginx/conf:/var/log/nginx

在项目根目录创建nginx_conf目录并创建nginx的配置文件default.conf

  1. > mkdir nginx_conf && cd nginx_conf && touch default.conf

编辑default.conf配置文件并加入如下配置:

  1. upstream gogs {
  2. server gogs:3000;
  3. }
  4. server {
  5. listen 80 default_server;
  6. server_name gogs.me; ### 域名
  7. location / {
  8. #反向代理的地址
  9. proxy_pass http://gogs;
  10. #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
  11. proxy_set_header Host $host;
  12. proxy_set_header X-Real-Ip $remote_addr;
  13. proxy_set_header X-Forwarded-For $remote_addr;
  14. access_log /var/log/nginx/gogs.log main;
  15. }
  16. }

该配置绑定了域名gogs.me并把请求转发到gogs容器的3000端口

启动nginx

  1. > docker-compose up -d gogs_nginx

通过该命令会一起启动mysql和gogs。

https://raw.githubusercontent.com/sockstack/hexo_blog_img/master/%E4%BD%BF%E7%94%A8docker%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%9E%84%E5%BB%BA%E7%A7%81%E4%BA%BA%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93/%E5%90%AF%E5%8A%A8nginx.png

所有容器都启动成功了。

安装gogs

在浏览器中输入gogs.me会出现安装gogs的界面:

gogs安装界面

添加如下配置:

gogs配置1

gogs配置2

添加完成后点击立即安装,等待安装完成即可。

安装完成界面


【代码仓库】使用Nginx搭建代码仓库 - 快速部署轻量级代码版本管理系统
作者
sockstack
许可协议
CC BY 4.0
发布于
2023-07-28
修改于
2025-03-30
Bonnie image
尚未登录