使用docker从零开始搭建私人代码仓库之nginx搭建

20次阅读

共计 1567 个字符,预计需要花费 4 分钟才能阅读完成。

docker 搭建 nginx 教程

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

添加 nginx 容器

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

  gogs_nginx:
    build:
      context: nginx
    tty: true
    depends_on:
      - gogs
    restart: always
    networks: 
      frontend:
    ports:
      - 80:80
    volumes:
      - ./nginx/conf:/etc/nginx/conf.d
      - ${DATA_DIR}/nginx/conf:/var/log/nginx

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

version: "3"

networks:
  frontend:

services:
  mysql:
    image: mysql:${MYSQL_VERSION}
    networks: 
      frontend:
    tty: true
    restart: always
    ports:
      - 3306:3306
    volumes:
      - ${DATA_DIR}/mysql/:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
  gogs:
    image: gogs/gogs
    depends_on:
      - mysql
    tty: true
    networks: 
      frontend:
    restart: always
    volumes:
      - ${DATA_DIR}/gogs:/data
  gogs_nginx:
    build:
      context: nginx
    tty: true
    depends_on:
      - gogs
    restart: always
    networks: 
      frontend:
    ports:
      - 80:80
    volumes:
      - ./nginx_conf:/etc/nginx/conf.d
      - ${DATA_DIR}/nginx/conf:/var/log/nginx

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

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

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

upstream gogs {server gogs:3000;}

server {
    listen       80 default_server;
    server_name  gogs.me; # 域名

    location / {
        #反向代理的地址
        proxy_pass http://gogs;  
        #设置主机头和客户端真实地址,以便服务器获取客户端真实 IP
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        access_log /var/log/nginx/gogs.log main;
    }
}

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

启动 nginx

> docker-compose up -d gogs_nginx

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

所有容器都启动成功了。

安装 gogs

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

添加如下配置:

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

更多精彩文章,请关注我的博客 SOCKSTACK,分享我的工作经验。

正文完
 0