mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
chore(stack): 切换到 default 模式,同步根目录状态
This commit is contained in:
@@ -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,11 +33,10 @@ jobs:
|
||||
DB_HOSTNAME: ${{ env.DB_HOSTNAME }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if [ ! -f .env ]; then
|
||||
cp .example.env .env
|
||||
|
||||
awk -v host="$DB_HOSTNAME" -v newpwd="$MYSQL_PASSWORD" '
|
||||
BEGIN { has_host = 0; has_pwd = 0; has_demo = 0 }
|
||||
BEGIN { has_host = 0; has_pwd = 0 }
|
||||
$0 ~ /^HOSTNAME=/ {
|
||||
print "HOSTNAME=" host
|
||||
has_host = 1
|
||||
@@ -44,22 +47,13 @@ jobs:
|
||||
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
|
||||
|
||||
mv .env.tmp .env
|
||||
else
|
||||
echo ".env exists in repository, skip generating/replacing."
|
||||
fi
|
||||
|
||||
- name: 打包发布文件
|
||||
shell: bash
|
||||
|
||||
34
Dockerfile
34
Dockerfile
@@ -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"]
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user