文档说明:只记录关键地方;
试验环境: linux debian 11
目标:nginx容器与php容器连接
构建PHP容器
curl -fsSL 'https://curl.haxx.se/ca/cacert.pem' -o /usr/local/etc/php/cacert.pem
RUN pecl channel-update https://pecl.php.net/channel.xml
RUN pear update-channels
RUN pecl install redis
RUN pecl install mongodb
RUN pecl install swoole
FROM php:7.4-cli-alpine
RUN sed -i "[email protected]/@mirrors.huaweicloud.com/@g" /etc/apk/repositories
RUN uname -a
RUN apk add --no-cache autoconf build-base bash bash-completion git curl wget ca-certificates openssl openssl-dev
RUN apk add --no-cache \
freetype \
freetype-dev \
jpeg \
libpng \
libwebp \
libpng \
libpng-dev \
libjpeg-turbo \
libjpeg-turbo-dev \
gd-dev \
zlib-dev \
gmp \
gmp-dev \
glib \
glib-dev \
libzip-dev \
postgresql-dev \
tini
#RUN addgroup -g 1000 -S wenba && adduser -u 1000 -S wenba -G wenba -s /sbin/nologin
ENV http_proxy="http://192.168.3.26:8015"
ENV https_proxy=$http_proxy
RUN pear config-set http_proxy $http_proxy
RUN pecl channel-update https://pecl.php.net/channel.xml
RUN pear update-channels
WORKDIR /
RUN pecl install redis
RUN pecl install mongodb
RUN pecl install swoole
#curl ssl 证书
#https://curl.haxx.se/docs/caextract.html curl ssl 证书下载网址
RUN curl -fsSL 'https://curl.haxx.se/ca/cacert.pem' -o /usr/local/etc/php/cacert.pem
#ADD ./cacert.pem /usr/local/etc/cacert.pem
ENV http_proxy=""
ENV https_proxy=$http_proxy
RUN pear config-set http_proxy ""
# 启用扩展
RUN docker-php-ext-enable redis
RUN docker-php-ext-enable mongodb
RUN docker-php-ext-enable swoole
RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
#php 源码所在目录 /usr/src/php
RUN docker-php-source extract
RUN docker-php-ext-install gd pdo_mysql pdo_pgsql sockets bcmath gmp zip
ADD ./php.ini /usr/local/etc/php/php.ini
RUN docker-php-source delete
#RUN rm -f /etc/localtime \
#&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
#&& echo "Asia/Shanghai" > /etc/timezone
#RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
#RUN php composer-setup.php
#RUN php -r "unlink('composer-setup.php');"
#
#RUN mv composer.phar /usr/bin/composer.phar
RUN wget -P /usr/bin/ https://mirrors.aliyun.com/composer/composer.phar && chmod a+x /usr/bin/composer.phar
# ln –s 源文件 目标文件
RUN ln -s /usr/bin/composer.phar /usr/bin/composer && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
#RUN apk add nfs-utils psmisc ceph-common psmisc strace lsof rsync libtool
#RUN apk add net-tools strace socat
RUN rm -rf /var/cache/apk/* /tmp
WORKDIR /
#USER 1000:1000
参考文档
- 容器5种网络模式
- hub docker php
- hub docker nginx
- curl ssl 证书
- PHP四种设置回调函数的方式
- Unix 系统下的安装
- php docs
- php 所支持的时区列表