由于网络问题,目前腾讯云服务器可以使用腾讯云的镜像,但是只能限制在腾讯云的服务器上使用
FROM php:8.4-fpm-alpine3.22
LABEL Maintainer="lxr <lxr@bulo.cn>"
LABEL Description="Lightweight container with Nginx 1.20 & PHP 8 based on Alpine Linux. Fork By TrafeX"
# use aliyun mirror
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# Install packages and remove default server definition
RUN apk --no-cache add \
curl \
nginx \
git \
supervisor \
openssl-dev \
php84-pecl-redis # 直接安装预编译的 Redis 扩展
# 安装 PDO MySQL 扩展
RUN docker-php-ext-install pdo_mysql
# 启用 Redis 扩展(如果需要)
# 通常 apk 安装的扩展会自动启用
# Installing composer
RUN curl -sS https://getcomposer.org/installer -o composer-setup.php \
&& php composer-setup.php --install-dir=/usr/local/bin --filename=composer \
&& rm -rf composer-setup.php
CMD ["/bin/sh"]
踩坑指南:
- 由于使用了宝塔安装的Docker环境,如果出现了容器中无法访问外网,比如无法ping外网,需要检查是否开启了IPV4的转发功能
# 检查IPv4转发是否开启
cat /proc/sys/net/ipv4/ip_forward
# 如果返回0,则需要启用
sudo sysctl -w net.ipv4.ip_forward=1
# 永久生效
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
- 将镜像推送到镜像仓库
# 1. 登录
docker login registry.cn-huhehaote.aliyuncs.com
# 用户名:yourname@company.com
# 密码:********
# 2. 构建并打标签
docker build -t registry.cn-huhehaote.aliyuncs.com/bulo/php-nginx:v1.0 .
# 3. 推送
docker push registry.cn-huhehaote.aliyuncs.com/bulo/php-nginx:v1.0
# 4. 查看
docker images | grep huhehaote