Docker
docker构建php7.4-apache镜像
docker构建php7.4-apache镜像
今天接到一个商城项目需求,本来打算贪图方便,用前面自己已经打好的8.1镜像本地运行项目,结果发现提示报警,看了下原来是php版本太高,好吧,只能重新打一个低版本的镜像,看了下生产环境php版本用的是7.4,所以我也打个php7.4的镜像来部署。
一、创建apache网站配置文件
我们命名一个文件,名字为000-default.conf,内容如下
<VirtualHost *:80>
ServerAdmin localhost
DocumentRoot /var/www/html/public
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Options
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>二、创建镜像构建文件
我们在同级目录下创建构建文件,命名为Dockerfile,内容如下
# Version 1.0 FROM php:7.4-apache # 设置时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 更新软件源并安装基础工具 RUN apt-get update && apt-get install -y \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ git \ wget \ vim \ unzip \ && rm -rf /var/lib/apt/lists/* # 配置 Apache RUN a2enmod rewrite headers \ && sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf \ && echo "ServerName localhost" >> /etc/apache2/apache2.conf # 安装 PHP 扩展 - 添加 mysqli RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd pdo pdo_mysql mysqli bcmath # 安装 Redis 扩展(使用 pecl) RUN pecl install redis-5.3.7 \ && docker-php-ext-enable redis # 安装 Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ # 删除默认站点配置 RUN rm -f /etc/apache2/sites-enabled/000-default.conf # 复制自定义配置 COPY 000-default.conf /etc/apache2/sites-available/ RUN ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/000-default.conf # 设置工作目录 WORKDIR /var/www/html # 设置权限(更好的做法) RUN chown -R www-data:www-data /var/www/html \ && chmod 755 /var/www/html # 设置 Apache 启动用户 RUN usermod -u 1000 www-data || true RUN groupmod -g 1000 www-data || true # 暴露端口 EXPOSE 80 # 启动 Apache CMD ["apache2-foreground"]
这里我暂时只是安装一些基础的php扩展,其他扩展等开发过程中发现缺了再重新打个包就行。
三、执行构建命令
我们直接执行以下命令行进行镜像构建
docker build -t hongzhuangxian/php7.4_apache .
接下来就是等待构建完成即可。
这样我们就可以以此作为基础镜像将项目映射进去,进行开发。
0条评论