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,分享我的工作經驗。