docker-compose一键部署LNMP环境

工具2阅读模式

docker-compose一键部署LNMP环境

说明

从目前的行业发展中,博主多年前开始一直从事容器方面的运维工作,为了更好的技术发展,后续将全面拥抱容器化技术。同时,由于维护OneinStack变得困难,并且各种环境适配也耗费了大量时间(相比容器更适合于跨平台、轻量级、高度可移植性和隔离性等方面)。因此,已于23年8月份出售了OneinStack(具体细节不方便透露),后续将更多精力和资源投入到一个新项目中,bypanel是一个基于容器构建安装环境,支持amd64、arm64平台。

支持操作系统

  • CentOS
  • RedHat
  • Alpine Linux
  • Debian
  • Ubuntu
  • AlmaLinux
  • Rocky Linux
  • Fedora
  • Amazon Linux
  • Alibaba Linux
  • Oracle Linux
  • Arch Linux
  • openSUSE
  • Anolis
  • OpenCloudOS
  • TencentOS
  • EulerOS
  • openEuler
  • Kylin
  • LinuxMint
  • Elementary
  • Deepin
  • Kali Linux
  • KylinsecOS
  • Uos

镜像说明

镜像地址:https://hub.docker.com/repositories/bypanel

使用github Action全自动化:

安装

克隆代码
git clone https://github.com/linuxeye/bypanel.git
cd bypanel
cp env-example .env
修改环境变量
vi .env

包含非常多参数,如

  • NEW_UID: 容器运行用户Id,网站根目录权限需为此用户Id,可通过`chown -R 1000:1000 /data/webroot`修改网站根目录权限
  • NEW_GID: 容器运行用户组Id
  • TIMEZONE: 容器时区
  • NGINX_SERVER: Nginx镜像版本
  • MYSQL_SERVER: MySQL镜像版本
  • PGSQL_SERVER: PostgreSQL镜像版本
  • REDIS_SERVER: Redis镜像版本
  • MEMCACHED_SERVER: Memcached镜像版本
  • MONGO_SERVER: MongoDB镜像版本
  • PMA_SERVER: phpMyAdmin镜像版本
  • PMA_ARBITRARY: phpMyAdmin参数,当设置为 1 时,将允许与任意服务器的连接
  • PMA_ABSOLUTE_URI: phpMyAdmin参数,phpMyAdmin的完整 URL。 有时在反向代理配置中使用时需要。
  • SFTPGO_SERVER: SFTPGo镜像版本
  • SFTPGO_FTPD_WEB_ADMIN_PORT: SFTPGo web管理端口,创建第一个管理员和一个新的 SFTPGo 用户,注意安全组端口
  • SFTPGO_FTPD_PORT: FTP服务端口,注意安全组端口
  • SFTPGO_FTPD_PASSIVE_PORT_RANGE_START: FTP服务被动开始的端口,注意安全组端口
  • SFTPGO_FTPD_PASSIVE_PORT_RANGE_END: FTP服务被动结束的端口,注意安全组端口
  • PHP_MODULES_ENABLE: PHP启用模块
  • PHP_MODULES_DISABLE: PHP禁用模块
  • HOST_PORT_NGINX: Nginx端口
  • HOST_PORT_NGINX_SSL: Nginx SSL端口
  • HOST_PORT_OPENRESTY: OpenResty端口
  • HOST_PORT_OPENRESTY_SSL: OpenResty SSL端口
  • HOST_PORT_APACHE: Apache端口
  • HOST_PORT_APACHE_SSL: Apache SSL端口
  • MYSQL_ROOT_PASSWORD: MySQL数据库root密码
  • HOST_PORT_MYSQL: MySQL端口
  • PGSQL_ROOT_USER: PostgreSQL根用户
  • PGSQL_ROOT_PASSWORD: PostgreSQL根用户密码
  • PGSQL_HOST_AUTH_METHOD: 为了不使用 PostgreSQL 的密码,请将此值保留为“trust”
  • HOST_PORT_PGSQL: PostgreSQL端口
  • HOST_PORT_REDIS: Redis端口
  • REDIS_ARGS: Redis启动参数
  • HOST_PORT_MEMCACHED: Memcached端口
  • HOST_PORT_MONGO: MongoDB端口
安装bypanel
cd bypanel
./install.sh
修改配置文件

~/bypanel/cfg:对应版本对应配置,注意路径为容器内路径

启动容器环境

启动nginx-1.24.0, php-8.2, maraidb-10.11命令:

docker-compose --profile nginx --profile php82 --profile mysql up -d

或者

vi /etc/environment
COMPOSE_PROFILES=nginx,php82,mysql
docker-compose up -d # 通过/etc/environment不需要--profile参数

启动nginx-1.24.0, php-8.2, maraidb-10.11,phpmyadmin,数据库备份命令:

docker-compose --profile nginx --profile php82 --profile mysql --profile phpmyadmin --profile mysql-cron-backup up -d

或者

vi /etc/environment
COMPOSE_PROFILES=nginx,php82,mysql,phpmyadmin,mysql-cron-backup
docker-compose up -d # 通过/etc/environment不需要--profile参数

启动openresty, php-8.3, mysql-5.7,phpmyadmin,数据库备份命令:
修改mysql版本:编辑.env ,将 MYSQL_SERVER=mariadb-10.11 改成 MYSQL_SERVER=mysql-5.7

docker-compose --profile openresty --profile php83 --profile mysql --profile phpmyadmin --profile mysql-cron-backup up -d

或者

vi /etc/environment
COMPOSE_PROFILES=openresty,php83,mysql,phpmyadmin,mysql-cron-backup
docker-compose up -d # 通过/etc/environment不需要--profile xxx参数

停止运行容器

关闭nginx-1.24.0, php-8.2, maraidb-10.11命令:

docker-compose --profile nginx -profile php82 -profile mysql stop

停止删除容器

关闭nginx-1.24.0, php-8.2, maraidb-10.11命令:

docker-compose --profile nginx -profile php82 -profile mysql down

数据目录结构

默认数据目录结构如下:

[root@linuxeye ~]# tree -L 2 /data
/data
├── backups
│   ├── 202312090300.linuxeye.sql.gz
│   ├── 202312100300.linuxeye.sql.gz
│   ├── 202312110300.linuxeye.sql.gz
│   └── latest.linuxeye.sql.gz -> 202312110300.linuxeye.sql.gz
├── logs
│   ├── nginx
│   └── php-fpm-8.2
├── mariadb-10.11
│   ├── aria_log.00000001
│   ├── aria_log_control
│   ├── ddl_recovery.log
│   ├── ib_buffer_pool
│   ├── ibdata1
│   ├── ib_logfile0
│   ├── ibtmp1
│   ├── linuxeye
│   ├── multi-master.info
│   ├── mysql
│   ├── mysql-bin.000001
│   ├── mysql-bin.000002
│   ├── mysql-bin.index
│   ├── mysql-slow.log
│   ├── mysql_upgrade_info
│   ├── performance_schema
│   └── sys
└── webroot
    ├── default
    └── linuxeye

 
  • 本文由 yeho 发表于 2023-12-11
  • 转载请务必保留本文链接:https://linuxeye.com/481.html
    • OneinStack多年学生
      OneinStack多年学生

      谢谢两位军哥多年的坚持,让我学会这么多

      • test
        test

        没有用过docker,有其他教程吗?
        比如怎么绑定域名,备份网站到云端这些。

      匿名

      发表评论

      匿名网友
      确定

      拖动滑块以完成验证