# Docker-php-webman **Repository Path**: erfgregfergreg/docker-php-webman ## Basic Information - **Project Name**: Docker-php-webman - **Description**: 用于构建webman使用的环境最小镜像 构建镜像前首先在app目录存放webman项目 - **Primary Language**: Docker - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-04-13 - **Last Updated**: 2025-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Docker-php-webman ## 介绍 发现其他镜像在装完扩展后大的吓人因此就有了这个项目. 用于构建webman使用的环境镜像 ## 快速构建 ```bash git clone https://gitee.com/lsmir2/docker-php-webman.git cd docker-php-webman docker-compose build ``` ## 安装扩展 和项目位置 配置在.env文件中配置 ```yaml # 镜像仓库地址 CONTAINER_PACKAGE_URL="mirrors.tuna.tsinghua.edu.cn" # 容器名称 CONTAINER_NAME="webman-app" # 构建镜像的相关文件位置 DOCKER_PHP_DIR="./docker-php" # 镜像名称 IMAGE_NAME="webman-php:8.3.19" # 安装扩展 如需安装多个扩展请用空格分隔 stable 安装稳定版 # https://github.com/mlocati/docker-php-extension-installer PHP_EXTENSIONS=" pcntl pdo_mysql-stable pdo_pgsql-stable redis-stable event-stable zip-stable apcu bcmath " # PHP版本 PHP_VERSION="8.3.19" # webman项目路径 docker-compose.yml 同级目录. 上级目录 ../app 自己定义 SOURCE_DIR="./app" TZ="Asia/Shanghai" ``` 默认 安装扩展 ```textile [PHP Modules] apcu bcmath Core ctype curl date dom event fileinfo filter hash iconv json libxml mbstring mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_pgsql pdo_sqlite Phar posix random readline redis Reflection session SimpleXML sodium SPL sqlite3 standard tokenizer xml xmlreader xmlwriter zip zlib ``` ### [注意] 构建镜像前首先在app目录存放webman项目 ```textile . ├── LICENSE ├── README.md ├── .env 环境变量文件 ├── docker-compose.yml docker-compose 配置文件 ├── docker-php │   ├── Dockerfile │   ├── docker-init.sh 容器初始化脚本 容器启动后执行 │   ├── install-php-extensions │   ├── php-install.sh │   └── php.ini ├── app 把你项目的文件复制到app文件夹 或git 时项目文件夹为app即可 │ ├── LICENSE │ ├── README.md │ ├── app │ ├── composer.json │ ├── composer.lock │ ├── config │ ├── process │ ├── public │ ├── routes │ ├── runtime │ ├── start.php │ ├── support │ ├── webman │ ├── windows.bat │ └── windows.php ``` 启动容器后会检查/app/vendor 文件夹是否存, 如果不存在会先执行 composer install 来安装依赖 . #### 安装教程 1. 执行脚本 ```bash chmod 777 ./install.sh ./install.sh ```   2. 直接跑docker命令 并且输出到日志文件 ```shell docker-compose build --no-cache --progress=plain | tee build.log &&docker-compose up -d ``` 3. 也可以使用这个命令 没有日志输出 ```bash docker-compose up -d --build ``` ### 容器启动后执行的脚本 docker-init.sh ```bash #!/bin/bash # 定义 vendor 目录的路径 VENDOR_DIR="/app/vendor" # 检查 vendor 目录是否存在 if [ ! -d "$VENDOR_DIR" ]; then echo "$VENDOR_DIR Running composer install..." # 执行 composer install 命令来安装依赖 composer install else echo "Running composer update..." rm -rf runtime/webman.pid composer update fi # 守护进程启动 webman 服务 php start.php start -d && tail -f /dev/null ``` ## docker-compose.yml ```yaml networks: 1panel-network: external: true services: 1panel-php: build: context: ./ args: PHP_IMAGE: ${PHP_VERSION} CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL} TZ: ${TZ} image: ${IMAGE_NAME} container_name: webman command: sh /docker-init.sh networks: - 1panel-network ports: - 127.0.0.1:8787:8787 volumes: - ./app:/app - ./docker-init.sh:/docker-init.sh - ${PHP_PHP_CONF_FILE}:/usr/local/etc/php/php.ini restart: always ``` ### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request