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

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

萝卜
6 年前OpenWrt系统阅读 6,124

前一篇文章介绍了如何在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有关的选项。。

    5 年前 回复
    • 萝卜

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

      5 年前 回复
聚合文章
解决OpenWrt 挂载Overlay 分区重启失效
OpenWrt 使用 Luci-app-frpc 配合Docker 内网穿透
OpenWrt 利用Docker 搭建Cloud Torrent 下载BT/PT种子
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
云标签
Adguard BT下载 Compose Docker LEDE OpenSSL OpenWrt OpenWrt功能 PassWall PT下载 Torrent Ubuntu 个性修改 内网穿透 固件编译 扩容 服务器 树莓派 端口映射 网站环境
解决OpenWrt 挂载Overlay 分区重启失效
2 年前
910 0 0
OpenWrt 使用 Luci-app-frpc 配合Docker 内网穿透
5 年前
7,736 1 2
OpenWrt 利用Docker 搭建Cloud Torrent 下载BT/PT种子
5 年前
4,524 0 5
Ubuntu 18.04 编译OpenWRT遇到libwebsockets 重复问题
5 年前
3,508 0 0
2 3
  • 3
  • 2
Copyright © 2019-2025 OpenWrt Club. Designed by nicetheme.
  • 首页
  • OpenWrt系统
  • OpenWrt插件
  • OpenWrt固件
  • 友人帐
  • OpneWrt 论坛
萝卜
茕茕孑立,孑孓而行。
14
文章
36
评论
107
喜欢