diff --git a/docker-compose.yml b/docker-compose.yml index 9b56b55..e5fa575 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,15 +11,17 @@ services: depends_on: - node-exporter panel: - build: docker/panel - volumes: - - ./management-panel:/app - entrypoint: php artisan serve --host=0.0.0.0 + build: management-panel +# volumes: +# - ./management-panel:/app + entrypoint: /app/entrypoint.sh + command: php artisan octane:start --server=swoole --workers=4 --host=0.0.0.0 --port=8000 ports: - 8000:8000 depends_on: - etcd - prometheus + restart: always node-exporter: build: docker/node_exporter # privileged: true @@ -28,6 +30,4 @@ services: volumes: - '/:/host:ro' opcua-exporter: - build: opcua-exporter -## volumes: -## - ./data:/data \ No newline at end of file + build: opcua-exporter \ No newline at end of file diff --git a/management-panel/.env.example b/management-panel/.env.example index 2a4a8b7..0ec6a27 100644 --- a/management-panel/.env.example +++ b/management-panel/.env.example @@ -5,7 +5,7 @@ APP_DEBUG=true APP_TIMEZONE=UTC APP_URL=http://localhost -APP_LOCALE=en +APP_LOCALE=zh_CN APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=en_US diff --git a/docker/panel/Dockerfile b/management-panel/Dockerfile similarity index 62% rename from docker/panel/Dockerfile rename to management-panel/Dockerfile index 01853fd..79c2e7f 100644 --- a/docker/panel/Dockerfile +++ b/management-panel/Dockerfile @@ -1,7 +1,7 @@ -FROM openeuler/openeuler:24.03 +FROM openeuler/openeuler:24.03 AS dev -# 设置工作目录 -WORKDIR /app +## 设置工作目录 +#WORKDIR /app # 更新系统和安装软件包 RUN dnf update -y && \ @@ -41,6 +41,43 @@ RUN npm config set registry https://registry.npmmirror.com && \ npm install -g yarn && \ yarn config set registry https://registry.npmmirror.com +FROM openeuler/openeuler:24.03 AS runtime +RUN dnf update -y \ + && dnf install php-cli php-bcmath php-mbstring php-pdo php-pecl-zip php-posix php-sodium php-xml php-intl php-opcache c-ares libcurl openssl brotli -y \ + && dnf clean all && rm -rf /var/cache/dnf/* + +RUN mkdir -p /usr/lib64/php/modules/ + +COPY --from=dev /usr/lib64/php/modules/zstd.so /usr/lib64/php/modules/zstd.so +COPY --from=dev /usr/lib64/php/modules/swoole.so /usr/lib64/php/modules/swoole.so + +RUN echo "extension=/usr/lib64/php/modules/zstd.so" > /etc/php.d/20-zstd.ini \ + && echo "extension=/usr/lib64/php/modules/swoole.so" > /etc/php.d/50-swoole.ini + +RUN sed -i 's/memory_limit\s*=.*/memory_limit = 4096M/g' /etc/php.ini + +WORKDIR /app + +FROM dev AS build + +COPY . /app + +WORKDIR /app + +RUN composer install --no-dev --no-suggest --optimize-autoloader + +RUN yarn \ + && rm -rf node_modules \ + && cp .env.example .env \ + && php artisan key:generate + +FROM runtime AS release + +COPY --from=build /app /app + +RUN chmod +x /app/entrypoint.sh \ + && chmod +x /app/artisan + # 暴露端口 EXPOSE 8000 diff --git a/management-panel/entrypoint.sh b/management-panel/entrypoint.sh new file mode 100644 index 0000000..b148a63 --- /dev/null +++ b/management-panel/entrypoint.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +mkdir -p storage/app/{public,tenants} +mkdir -p storage/logs + +if [ ! -f /app/storage/app/database.sqlite ]; then + cat .env + touch /app/storage/app/database.sqlite + php artisan migrate --seed --force +fi + +php artisan migrate + +$@ \ No newline at end of file