docker生产环境文件

Dockerfile

FROM php:8.2-alpine

# root 用户
USER root

# 工作目录
WORKDIR /data

# 容器启动命令 常驻后台 可自定义
# cd /data && composer install --optimize-autoloader --no-dev && php start.php start -d && tail -n 1 -f /etc/passwd
COPY ./scripts/start.sh /start.sh

# 下载慢 提前下载好
# curl -sS https://getcomposer.org/installer | php
COPY ./scripts/composer-setup.php /composer-setup.php

# 修改 start.sh 可执行
RUN chmod a+x /start.sh \
    # 修改镜像地址
    && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
    # 更新缓存
    && apk update \
    # 安装需要的基础包
    && apk add autoconf linux-headers libevent-dev openssl-dev zlib-dev libpng-dev \
    # 解压 php 源代码
    && docker-php-source extract \
    # 安装并且开启 php 扩展
    && docker-php-ext-install -j$(nproc) pcntl sockets pdo_mysql gd \
    # 开启 opcache
    && docker-php-ext-enable opcache \
    # php 扩展源代码
    && cd /usr/src/php/ext \
    # 下载 event 扩展
    && wget https://pecl.php.net/get/event-3.0.8.tgz \
    # 解压
    && tar xvf event-3.0.8.tgz \
    # 重命名
    && mv event-3.0.8 event \
    # 安装并且开启 event
    && docker-php-ext-install -j$(nproc) event \
    # 切换到 配置文件目录
    && cd /usr/local/etc/php/conf.d/ \
    # 修改 event 扩展加载顺序 到 sockets 后面 不然会报错
    && mv docker-php-ext-event.ini docker-php-ext-z1-event.ini \
    # 删除 php 源代码
    && docker-php-source delete \
    # 切换到工作目录
    && cd /data \
    # 安装 composer
    && php /composer-setup.php \
    # 移动 composer
    && mv composer.phar /usr/local/bin/composer \
    # 设置 composer 镜像
    && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

# 定义启动脚本
CMD [ "/start.sh" ]

docker-compose.yml

FROM php:8.2-alpine

# root 用户
USER root

# 工作目录
WORKDIR /data

# 容器启动命令 常驻后台 可自定义
# cd /data && composer install --optimize-autoloader --no-dev && php start.php start -d && tail -n 1 -f /etc/passwd
COPY ./scripts/start.sh /start.sh

# 下载慢 提前下载好
# curl -sS https://getcomposer.org/installer | php
COPY ./scripts/composer-setup.php /composer-setup.php

# 修改 start.sh 可执行
RUN chmod a+x /start.sh \
    # 修改镜像地址
    && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
    # 更新缓存
    && apk update \
    # 安装需要的基础包
    && apk add autoconf linux-headers libevent-dev openssl-dev zlib-dev libpng-dev \
    # 解压 php 源代码
    && docker-php-source extract \
    # 安装并且开启 php 自带扩展
    && docker-php-ext-install -j$(nproc) pcntl sockets pdo_mysql gd exif \
    # 开启 opcache
    && docker-php-ext-enable opcache \
    # 切换进 php 扩展源代码 准备安装 pecl 扩展
    && cd /usr/src/php/ext \
    # 下载安装 event 扩展
    && wget https://pecl.php.net/get/event-3.0.8.tgz && tar xvf event-3.0.8.tgz && mv event-3.0.8 event && docker-php-ext-install -j$(nproc) event \
    # 配置 event 扩加载顺序 到 sockets 后面 不然会报错
    && mv /usr/local/etc/php/conf.d/docker-php-ext-event.ini /usr/local/etc/php/conf.d/docker-php-ext-z1-event.ini \
    # 下载安装 redis 扩展
    && wget https://pecl.php.net/get/redis-6.0.2.tgz && tar xvf redis-6.0.2.tgz && mv redis-6.0.2 redis && docker-php-ext-install -j$(nproc) redis \
    # 切换到工作目录
    && cd /data \
    # 安装 composer
    && php /composer-setup.php && mv composer.phar /usr/local/bin/composer && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \
    # 删除 php 源代码
    && docker-php-source delete

# 定义启动脚本
CMD [ "/start.sh" ]
73 2 2
2个评论

新增安装 pecl 的 event 扩展 redis 扩展

  • 暂无评论

学习一下

  • 暂无评论

420
积分
0
获赞数
0
粉丝数
2023-04-24 加入
×
🔝