mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-10-29 08:58:22 +08:00
fix(stack): 开发模式移除VOLUME消除runtime遮蔽,run.sh权限与su写法修复
- docker-dev/docker-dev-sync 删除 4 行 VOLUME:匿名卷会遮蔽整目录 bind mount 的宿主 runtime(已实证:宿主看不到容器日志) - run.sh 统一四目录 777 + umask + 正确 su 写法(-s /bin/sh,www-data 为 nologin) - serve/full/author 生产模式 VOLUME 保留作 docker run -v 兜底
This commit is contained in:
@@ -29,8 +29,9 @@ echo "参数为:$@"
|
|||||||
# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码
|
# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码
|
||||||
|
|
||||||
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
||||||
# 运行定时任务 TODO:以指定用户运行
|
# 运行定时任务(以 www-data 运行;www-data 是 nologin 账户,必须 -s /bin/sh 覆盖 shell,用户名放最后)
|
||||||
su - www-data -c "nohup php /var/www/html/think timer --local --quiet &"
|
# 注意不要写成 su -www-data(会被解析为 -w 选项导致以 root 运行)或 su - www-data(nologin 直接报错)
|
||||||
|
su -s /bin/sh -c "nohup php /var/www/html/think timer --local --quiet &" www-data
|
||||||
# 运行nginx
|
# 运行nginx
|
||||||
service nginx start
|
service nginx start
|
||||||
# 运行php-fpm
|
# 运行php-fpm
|
||||||
|
|||||||
@@ -84,10 +84,8 @@ COPY source/stack/docker-dev-sync/source/docker/zzz-xdebug.ini /usr/local/etc/ph
|
|||||||
# Create source mount point (host code staging area)
|
# Create source mount point (host code staging area)
|
||||||
RUN mkdir -p /var/www/source
|
RUN mkdir -p /var/www/source
|
||||||
|
|
||||||
VOLUME /var/www/html/runtime
|
# 同步模式:代码 rsync 到容器本地,runtime 由 run.sh 启动时 chmod 777 重建,
|
||||||
VOLUME /var/www/html/public/storage
|
# sync.sh 已排除 runtime;匿名卷在容器重建后并不延续,故不声明 VOLUME
|
||||||
VOLUME /var/www/html/public/build
|
|
||||||
VOLUME /var/www/html/storage
|
|
||||||
|
|
||||||
# Expose Nginx port
|
# Expose Nginx port
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|||||||
@@ -67,8 +67,8 @@ mkdir -p /var/www/html/runtime/nginx && chmod 777 /var/www/html/runtime/nginx
|
|||||||
echo "参数为:$@"
|
echo "参数为:$@"
|
||||||
|
|
||||||
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
||||||
# Run timer (background)
|
# Run timer (background, as www-data; nologin account requires -s /bin/sh with username last)
|
||||||
su -www-data -c "nohup php /var/www/html/think timer --local --quiet &"
|
su -s /bin/sh -c "nohup php /var/www/html/think timer --local --quiet &" www-data
|
||||||
# Run nginx
|
# Run nginx
|
||||||
service nginx start
|
service nginx start
|
||||||
# Run php-fpm (foreground, keeps container alive)
|
# Run php-fpm (foreground, keeps container alive)
|
||||||
|
|||||||
@@ -84,13 +84,8 @@ RUN echo 'auto_prepend_file = /opt/xhprof/xhprof-bootstrap.php' > /usr/local/etc
|
|||||||
COPY source/stack/docker-dev/source/docker/zzz-dev.ini /usr/local/etc/php/conf.d/zzz-dev.ini
|
COPY source/stack/docker-dev/source/docker/zzz-dev.ini /usr/local/etc/php/conf.d/zzz-dev.ini
|
||||||
COPY source/stack/docker-dev/source/docker/zzz-xdebug.ini /usr/local/etc/php/conf.d/zzz-xdebug.ini
|
COPY source/stack/docker-dev/source/docker/zzz-xdebug.ini /usr/local/etc/php/conf.d/zzz-xdebug.ini
|
||||||
|
|
||||||
VOLUME /var/www/html/runtime
|
# 开发模式整目录 bind mount:子路径 VOLUME 匿名卷会遮蔽宿主 runtime 等目录,
|
||||||
VOLUME /var/www/html/public/storage
|
# 权限与持久化由 run.sh 启动时 chmod 777 + 宿主目录直接承担,故不声明 VOLUME
|
||||||
VOLUME /var/www/html/public/build
|
|
||||||
VOLUME /var/www/html/storage
|
|
||||||
|
|
||||||
# Mount main directory, alternatively mount the main directory directly and remove the specific volumes above
|
|
||||||
# VOLUME ["/var/www/html"]
|
|
||||||
|
|
||||||
# Expose Nginx port
|
# Expose Nginx port
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|||||||
@@ -47,8 +47,9 @@ echo "参数为:$@"
|
|||||||
# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码
|
# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码
|
||||||
|
|
||||||
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
||||||
# 运行定时任务 TODO:以指定用户运行
|
# 运行定时任务(以 www-data 运行;www-data 是 nologin 账户,必须 -s /bin/sh 覆盖 shell,用户名放最后)
|
||||||
su -www-data -c "nohup php /var/www/html/think timer --local --quiet &"
|
# 注意不要写成 su -www-data(会被解析为 -w 选项导致以 root 运行)或 su - www-data(nologin 直接报错)
|
||||||
|
su -s /bin/sh -c "nohup php /var/www/html/think timer --local --quiet &" www-data
|
||||||
# 运行nginx
|
# 运行nginx
|
||||||
service nginx start
|
service nginx start
|
||||||
# 运行php-fpm
|
# 运行php-fpm
|
||||||
|
|||||||
@@ -36,8 +36,9 @@ echo "参数为:$@"
|
|||||||
# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码
|
# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码
|
||||||
|
|
||||||
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
||||||
# 运行定时任务 TODO:以指定用户运行
|
# 运行定时任务(以 www-data 运行;www-data 是 nologin 账户,必须 -s /bin/sh 覆盖 shell,用户名放最后)
|
||||||
su - www-data -c "nohup php /var/www/html/think timer --local --quiet &"
|
# 注意不要写成 su -www-data(会被解析为 -w 选项导致以 root 运行)或 su - www-data(nologin 直接报错)
|
||||||
|
su -s /bin/sh -c "nohup php /var/www/html/think timer --local --quiet &" www-data
|
||||||
# 运行nginx
|
# 运行nginx
|
||||||
service nginx start
|
service nginx start
|
||||||
# 运行php-fpm
|
# 运行php-fpm
|
||||||
|
|||||||
@@ -36,8 +36,9 @@ echo "参数为:$@"
|
|||||||
# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码
|
# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码
|
||||||
|
|
||||||
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
||||||
# 运行定时任务 TODO:以指定用户运行
|
# 运行定时任务(以 www-data 运行;www-data 是 nologin 账户,必须 -s /bin/sh 覆盖 shell,用户名放最后)
|
||||||
su - www-data -c "nohup php /var/www/html/think timer --local --quiet &"
|
# 注意不要写成 su -www-data(会被解析为 -w 选项导致以 root 运行)或 su - www-data(nologin 直接报错)
|
||||||
|
su -s /bin/sh -c "nohup php /var/www/html/think timer --local --quiet &" www-data
|
||||||
# 运行nginx
|
# 运行nginx
|
||||||
service nginx start
|
service nginx start
|
||||||
# 运行php-fpm
|
# 运行php-fpm
|
||||||
|
|||||||
Reference in New Issue
Block a user