OpenWrt Club OpenWrt Club
  • 首页
  • OpenWrt系统
  • OpenWrt插件
  • OpenWrt固件
  • 友人帐
  • OpneWrt 论坛
  • 注册
  • 登录
首页 › OpenWrt系统 › OpenWrt 利用docker-compose 搭建网站环境

OpenWrt 利用docker-compose 搭建网站环境

萝卜
3年前OpenWrt系统阅读 4,409

前一篇文章介绍了如何在OpenWrt系统中安装docker-compose 工具,接下来就要发挥他的作用,利用安装的docker-compose 工具搭建一个网站WEB环境。如果你的软路由性能强劲只用来做路由器是不是太浪费资源?为了更充分的利用软路由的性能,我们可以用docker来做任何事情。

我平时需要一个PHP+Nginx+Mysql+Redis的网站环境,利用docker-compose可以轻松构建这样一个环境,你可以自己写也可以利用网上别的做好的,我这里拿张戈的DOMP来做。

项目地址:https://github.com/jagerzhang/domp

环境搭建

修改UHTTPD 的默认端口

默认UHTTPD占用了80端口,修改成其他的。

vim /etc/config/uhttpd

把80端口修改成808或者其他

list listen_http '0.0.0.0:808'
list listen_http '[::]:808'

重启uhttpd 服务

/etc/init.d/uhttpd restart

之后访问你的LUCI界面需要加上808端口,比如:

https://192.168.1.252:808

如果你的硬盘较小,你可以挂在U盘到data目录下,我做的系统默认是1G,自己用完全足够了。

克隆代码

mkdir -p /data && cd /data
git clone https://github.com/jagerzhang/domp.git

修改MySQL数据库的密码

vim docker-compose.yml
找到:
- "MYSQL_ROOT_PASSWORD=yourpassword"
将 yourpassword 改成自定义密码

找到:
build: ./etc/php/dockerfile/72/ 
将72改成需要的php版本,目前支持56、70、71、72 四个版本,若无版本刚需,使用默认的7.2即可!

若因国内功夫墙导致php-fpm在线编译失败,可以如下修改:

vim docker-compose.yml
找到:
php-fpm:
    build: ./etc/php/dockerfile/72/
    container_name: php-fpm
    image: php-fpm:7.2
改为:
php-fpm:
    #build: ./etc/php/dockerfile/72/
    container_name: php-fpm
    image: jagerzhang/php-fpm:7.2 # 这里直接使用张戈做好的镜像即可,版本同样有 5.6,7.0-7.2。如果一定有特殊php模块需求则不能使用。

修改php模块(Ps:绝大部分网站无需修改,除非出现php模块缺失报错)

vim etc/php/dockerfile/72/Dockerfile  # 注意你选择的实际版本,这里说7.2版本修改说明,其他版本可参考修改。

# 找到如下语句,若满足要求则无需修改,若缺少某模块,则加上 php72w-模块名称,pecl的可能要额外加上 pecl
yum install -y memcached php72w-fpm php72w-gd php72w-pecl-memcached php72w-opcache php72w-mysql php72w-mbstring php72w-pecl-redis

启动domp

docker-compose up -d
docker ps # 查看是否正常启动
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                 NAMES
2fdcd10d05c6        openresty/openresty:centos   "/usr/bin/openresty …"   2 hours ago         Up 2 hours                                                openresty
eb5684527e4b        php-fpm:7.2                  "php-fpm -F"             2 hours ago         Up 2 hours                                                php-fpm
41381dea3d7f        redis:latest                 "docker-entrypoint.s…"   2 hours ago         Up 2 hours          127.0.0.1:6379->6379/tcp              redis
1f6278298539        mysql:8.0                    "docker-entrypoint.s…"   4 days ago          Up 4 days           127.0.0.1:3306->3306/tcp, 33060/tcp   mysql

配置网站

虚拟主机配置说明

domp 默认已经自带了2种虚拟主机配置:yourdomain.com.conf 和 yourdomain.com_cache.conf,第一个不带redis缓存,第二个带redis缓存,自行选择一个,然后删除另一个即可。然后参考这个配置文件来定制自己网站的配置文件。若看不懂这个配置文件,可以直接拷贝网站原来的vhost配置文件也可以。

https证书配置说明

https证书请放置到 domp/etc/nginx/cert 目录,然后在vhost配置中引用即可,注意在vhost里面的配置要变为:/etc/nginx/cert/证书名字 ,而非domp/etc/nginx/cert 目录,因为已经挂载到了docker里面了!!!

缓存配置说明

若开启了openresty+redis缓存,且正好又是wordpress网站,则可以安装下nginx-hepler和Redis Object Cache插件,天然绝配!后续有时间会有domp一系列的文章分享,敬请期待:https://zhang.ge/ 。

Docker OpenWrt 网站环境
赞(3) 收藏(0)
如何在 OpenWrt 中安装Docker Compose
上一篇
Ubuntu 18.04 编译OpenWRT遇到错误和解决办法
下一篇
再想想
所有评论(2)
  • netitgo

    你好,nginx下的HTTPS跟OPENWRT下uhttpd的HTTPS冲突啊,在防火墙里怎么映射都是会去到OPENWRT登录界面上,我也找不到在哪关了uhttpd的443监听,打开/etc/config/uhttpd文件也没有看到跟443有关的选项。。

    2年前 回复
    • 萝卜

      @netitgo: 默认情况下没有开启HTTPS吧,你可以利用lsof -i:443 查看是什么专用了443端口。

      2年前 回复
聚合文章
OpenWrt 使用 Luci-app-frpc 配合Docker 内网穿透
OpenWrt 利用Docker 搭建Cloud Torrent 下载BT/PT种子
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
Ubuntu 18.04 编译OpenWRT遇到错误和解决办法
云标签
Adguard BT下载 Compose Docker LEDE OpenSSL OpenWrt OpenWrt功能 PassWall PT下载 Torrent Ubuntu 个性修改 内网穿透 固件编译 服务器 树莓派 端口映射 网站环境
OpenWrt 使用 Luci-app-frpc 配合Docker 内网穿透
3年前
5,659 1 1
OpenWrt 利用Docker 搭建Cloud Torrent 下载BT/PT种子
3年前
3,123 0 5
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
3年前
2,420 0 0
Ubuntu 18.04 编译OpenWRT遇到错误和解决办法
3年前
4,015 0 2
2 3
  • 3
  • 2
Copyright © 2019-2023 OpenWrt Club. Designed by nicetheme.
  • 首页
  • OpenWrt系统
  • OpenWrt插件
  • OpenWrt固件
  • 友人帐
  • OpneWrt 论坛
萝卜
茕茕孑立,孑孓而行。
13
文章
36
评论
104
喜欢