编写 Dockerfile 文件构建 hyperf-service:v1.0 镜像,具体要求如下:(需要用到的软件包: Hyperf.tar.gz) (1)基础镜像:centos:7.9.2009; (2)安装 PHP 及扩展; (3)使用源码编译安装 Swoole。
时间: 2024-09-20 17:02:36 浏览: 36
pip-1.0.tar.gz
在Dockerfile中构建`hyperf-service:v1.0`镜像的具体步骤如下:
```dockerfile
# 使用CentOS 7.9作为基础镜像
FROM centos:7.9.2009
# 设置工作目录
WORKDIR /app
# 更新系统并安装必要的工具
RUN yum update -y && yum install -y epel-release \
&& yum install -y php php-fpm php-gd php-mysqlnd php-zip php-intl php-soap php-pdo php-mbstring
# 安装Composer用于依赖管理
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# 下载Hyperf.tar.gz到当前目录
ADD Hyperf.tar.gz /app/
# 切换到Hyperf目录并解压
RUN tar -zxvf Hyperf.tar.gz && cd hyperf
# 检查是否有.swoole.php文件,如果存在则继续,否则编译Swoole
RUN if [ -e .swoole.php ]; then \
echo "Swoole已经预编译,跳过编译过程"; \
else \
# 如果.swoole.php不存在,从源码编译Swoole
RUN composer require swoole/swoole-src && \
php vendor/bin/phpunit --no-configuration build/swoole && \
cp -r build/swoole/usr/local/lib/php/extensions/no-debug-non-zts-20180731/swoole.so /usr/local/lib64/php/modules/ && \
ln -s /usr/local/lib64/php/modules/swoole.so /etc/php.d/swoole.ini \
fi
# 将当前目录设置为Web根目录
VOLUME /app/hyperf/public
# 暴露默认的PHP-FPM监听端口
EXPOSE 9501
# 运行php-fpm服务
CMD ["php-fpm"]
```
阅读全文