From 95698afa18a7950f47d57c99869b1bee7377a6d9 Mon Sep 17 00:00:00 2001 From: augushong Date: Wed, 27 May 2026 21:53:35 +0800 Subject: [PATCH] =?UTF-8?q?chore(stack):=20=E5=88=87=E6=8D=A2=E5=88=B0=20d?= =?UTF-8?q?efault=20=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=90=8C=E6=AD=A5=E6=A0=B9?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build-and-deploy.yml | 52 ++++++++++++--------------- Dockerfile | 34 ------------------ docker-compose.yaml | 22 ------------ source/docker/run.sh | 37 ------------------- 4 files changed, 23 insertions(+), 122 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker-compose.yaml delete mode 100644 source/docker/run.sh diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index fe2a479..ae11379 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -22,6 +22,10 @@ jobs: with: fetch-depth: 1 + - name: 切换到 docker-serve 模式 + shell: bash + run: php think admin:stack:mode use docker-serve -f + - name: 生成 .env shell: bash env: @@ -29,37 +33,27 @@ jobs: DB_HOSTNAME: ${{ env.DB_HOSTNAME }} run: | set -euo pipefail - if [ ! -f .env ]; then - cp .example.env .env + cp .example.env .env - awk -v host="$DB_HOSTNAME" -v newpwd="$MYSQL_PASSWORD" ' - BEGIN { has_host = 0; has_pwd = 0; has_demo = 0 } - $0 ~ /^HOSTNAME=/ { - print "HOSTNAME=" host - has_host = 1 - next - } - $0 ~ /^PASSWORD=/ { - print "PASSWORD=" newpwd - has_pwd = 1 - next - } - $0 ~ /^IS_DEMO=/ { - print "IS_DEMO=true" - has_demo = 1 - next - } - { print } - END { - if (!has_host) print "HOSTNAME=" host - if (!has_pwd) print "PASSWORD=" newpwd - if (!has_demo) print "IS_DEMO=true" - }' .env > .env.tmp + awk -v host="$DB_HOSTNAME" -v newpwd="$MYSQL_PASSWORD" ' + BEGIN { has_host = 0; has_pwd = 0 } + $0 ~ /^HOSTNAME=/ { + print "HOSTNAME=" host + has_host = 1 + next + } + $0 ~ /^PASSWORD=/ { + print "PASSWORD=" newpwd + has_pwd = 1 + next + } + { print } + END { + if (!has_host) print "HOSTNAME=" host + if (!has_pwd) print "PASSWORD=" newpwd + }' .env > .env.tmp - mv .env.tmp .env - else - echo ".env exists in repository, skip generating/replacing." - fi + mv .env.tmp .env - name: 打包发布文件 shell: bash diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 41d26fe..0000000 --- a/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -ARG BASE_IMAGE=ulthon/ulthon_admin-base:latest -FROM ${BASE_IMAGE} - -# 设置工作目录 -WORKDIR /var/www/html - -# 预先拷贝 composer 文件并安装依赖,利用 Docker 缓存 -COPY composer.json composer.lock /var/www/html/ -RUN composer install --no-dev --no-interaction --no-scripts --no-autoloader - -# 将当前目录下的文件拷贝到工作目录 -COPY . /var/www/html - -# 生成自动加载文件 -RUN composer dump-autoload --optimize --no-dev --classmap-authoritative - -VOLUME /var/www/html/runtime -VOLUME /var/www/html/public/storage -VOLUME /var/www/html/public/build -VOLUME /var/www/html/storage - -# 挂载主目录,也可以选择直接挂载主目录,可以把上面的几个指定的目录删掉 -# VOLUME ["/var/www/html"] - -# 暴露 Nginx 端口 -EXPOSE 8000 - -RUN chmod +x /var/www/html/source/docker/run.sh - -# 启动 Nginx PHP 然后阻塞 -ENTRYPOINT ["/bin/bash", "/var/www/html/source/docker/run.sh"] - -CMD ["server"] - diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index 596b0fc..0000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,22 +0,0 @@ - -name: ulthon_admin - - -services: - ulthon_admin: - # 正式环境中,您应当构建一个完整镜像,使用镜像名称或id运行,不要使用dockerfile - # image: ulthon/ulthon_admin:v1 - build: - context: . # Dockerfile 所在的目录 - dockerfile: Dockerfile # Dockerfile 的名称 - restart: always - ports: - - "8000:8000" # HTTP - volumes: - - ./:/var/www/html # 直接分发代码可以去掉注释并将下面的目录增加注释 - # - ./runtime:/var/www/html/runtime - # - ./public/storage:/var/www/html/public/storage - # - ./public/build:/var/www/html/public/build - # - ./storage:/var/www/html/storage - extra_hosts: - - "host.docker.internal:host-gateway" diff --git a/source/docker/run.sh b/source/docker/run.sh deleted file mode 100644 index f211c90..0000000 --- a/source/docker/run.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -# 将代码中的nginx复制到nginx配置文件中 -cp /var/www/html/source/docker/nginx.conf /etc/nginx/sites-available/default -ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default - -# 将代码中的php配置文件复制到php配置文件中 -cp /var/www/html/source/docker/zz-phprun.ini /usr/local/etc/php/conf.d -cp /var/www/html/source/docker/zz-phpfpm.conf /usr/local/etc/php-fpm.d - - -# 设置目录权限,确保挂载卷后依然有效 -mkdir -p /var/www/html/runtime && chmod -R 777 /var/www/html/runtime -mkdir -p /var/www/html/public/storage && chmod -R 777 /var/www/html/public/storage -mkdir -p /var/www/html/public/build && chmod -R 777 /var/www/html/public/build -mkdir -p /var/www/html/storage && chmod -R 777 /var/www/html/storage -mkdir -p /var/www/html/memoryspace && chown -R www-data:www-data /var/www/html/memoryspace - - -# 运行redis -# nohup redis-server --requirepass "" & - -# 输出参数 -echo "参数为:$@" - -# TODO:增加自动批量运行并阻塞的脚本,比如:group default ,会调用auto.sh的default的部分,最终阻塞,auth.sh的default部分,可能会运行一系列的命令,比如清空缓存,踢人下线,重置密码 - -if [ "$1" = "server" ] || [ "$1" = "" ]; then - # 运行定时任务 TODO:以指定用户运行 - su -s /bin/bash www-data -c "nohup php /var/www/html/think timer --local --quit > /var/www/html/runtime/timer.log 2>&1 &" - # 运行nginx - service nginx start - # 运行php-fpm - php-fpm -else - php "/var/www/html/""$@" -fi