个性化方案
February 17, 2024 · View on GitHub
本项目提供的默认环境可能不符合开发者实际的需求,例如想增加一个软件、更改一项配置。下面提供一些典型案例。
自定义所启动的服务
例如使用 httpd 替换 nginx。
编辑 .env 文件,在 LNMP_SERVICES 变量中增加软件名
- LNMP_SERVICES="nginx mysql php8 redis" # 默认配置
+ LNMP_SERVICES="httpd mysql php8 redis" # 使用 httpd 代替 nginx
+ LNMP_SERVICES="httpd mysql php8 redis mongodb" # 增加 mongodb
使用自己的镜像
不想使用本项目默认的镜像,可以!
你可以参考下一小节的 自定义镜像 使用自己的镜像。
通过修改 docker-lnmp.override.yml 文件自定义本项目
编辑 docker-lnmp.override.yml 文件,增加服务名,修改指令即可。
建议每次修改之后执行 $ lnmp-docker config > docker-compose.yaml 查看配置是否正确,之后启动。
自定义镜像
# docker-lnmp.override.yml
services:
php8:
# 想修改哪个配置在这里重写即可,例如想使用自己的 PHP 镜像或国内镜像,那么增加 `image` 指令即可
image: ccr.ccs.tencentyun.com/khs1994/php:${LNMP_PHP_VERSION:-8.3.0}-fpm-alpine
你也可以加上 build 字段,先构建镜像再启动
# docker-lnmp.override.yml
services:
php8:
image: ccr.ccs.tencentyun.com/khs1994/php:${LNMP_PHP_VERSION:-8.3.0}-fpm-alpine
# 增加 build 字段
build:
context: ./dockerfile/php/
$ ./lnmp-docker build [SERVICE...]
$ ./lnmp-docker up
自定义数据卷
例如我们想增加一个数据卷挂载,将本机
/path/src挂载到 PHP 容器中的/path/target
# docker-lnmp.override.yml
services:
php8:
volumes:
- /path/src:/path/target
再例如
MySQL默认将容器目录/var/lib/mysql映射到了宿主机中的数据卷,但我们想映射到宿主机的/path/mysql目录
# docker-lnmp.override.yml
services:
mysql:
volumes:
- /path/mysql:/var/lib/mysql
增加一个服务
# docker-lnmp.override.yml
services:
my_add_service:
image: username/image
参考最开始的小节,在 .env 文件中修改 LNMP_SERVICES 变量,增加服务名。
单独启动某个软件
我想单独启动某个软件,可以!
$ lnmp-docker up SOFT_NAME SOFT_NAME2
# $ lnmp-docker up kong-dashboard
# $ lnmp-docker up kong kong-dashboard
使用自己的镜像(除使用官方镜像的服务以外)
.env 文件更改以下变量
# LNMP_DOCKER_IMAGE_PREFIX=khs1994
LNMP_DOCKER_IMAGE_PREFIX=username