白开水 2019-10-09
通过《使用docker从零开始搭建私人代码仓库之MySQL搭建》和《使用docker从零开始搭建私人代码仓库之gogs搭建》的搭建其实已经可以搭建成功了代码仓库的了,但是为了访问方便,我们有时候需要绑定域名,那么我们可以通过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端口
> docker-compose up -d gogs_nginx
通过该命令会一起启动mysql和gogs。
所有容器都启动成功了。
在浏览器中输入gogs.me
会出现安装gogs的界面:
添加如下配置:
添加完成后点击立即安装,等待安装完成即可。
更多精彩文章,请关注我的博客SOCKSTACK,分享我的工作经验。