mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-17 20:34:51 +08:00
Create Dockerfile
This commit is contained in:
parent
609790ea7b
commit
cc3aa2ec44
116
docker/Dockerfile
Normal file
116
docker/Dockerfile
Normal file
@ -0,0 +1,116 @@
|
||||
from alpine:latest
|
||||
|
||||
ENV SCRIPT_VERSION=1.3.0
|
||||
ENV USE_BACKUP=no
|
||||
ENV HOME_DIR=/
|
||||
ENV SOURCE_DIR=/source
|
||||
ENV SOFT_DIR=/usr
|
||||
|
||||
ENV VER_PHP=7.4.19
|
||||
ENV VER_SWOOLE=4.6.7
|
||||
ENV VER_HASH=1.5
|
||||
ENV VER_INOTIFY=3.0.0
|
||||
ENV VER_REDIS=5.3.4
|
||||
ENV VER_LIBXML2=2.9.10
|
||||
ENV VER_CURL=7.77.0
|
||||
ENV VER_LIBLZMA=master
|
||||
ENV VER_LIBZIP=1
|
||||
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
|
||||
|
||||
# 编译必需的
|
||||
RUN apk add cmake gcc g++ autoconf git libstdc++ linux-headers make m4 libgcc binutils ncurses
|
||||
# php的zlib支持
|
||||
RUN apk add zlib-dev zlib-static
|
||||
# php的mbstring支持
|
||||
RUN apk add oniguruma-dev
|
||||
# php的openssl支持
|
||||
RUN apk add openssl-libs-static openssl-dev openssl
|
||||
# php的gd支持,如果不需要gd则去掉--enable-gd和下面的依赖
|
||||
RUN apk add libpng-dev libpng-static
|
||||
# curl的c-ares支持,如果不需要curl则去掉
|
||||
RUN apk add c-ares-static c-ares-dev
|
||||
|
||||
RUN mkdir /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY ac_override_1 /tmp/
|
||||
COPY ac_override_2 /tmp/
|
||||
COPY php-arg.sh /tmp/
|
||||
|
||||
RUN mkdir downloads && mkdir source && cd downloads
|
||||
|
||||
RUN wget "http://mirrors.zhamao.xin/php/php-${VER_PHP}.tar.gz" -O php.tar.gz
|
||||
RUN wget "http://mirrors.zhamao.xin/pecl/swoole-${VER_SWOOLE}.tgz" -O swoole.tar.gz
|
||||
RUN wget "http://mirrors.zhamao.xin/pecl/hash-${VER_HASH}.tgz" -O hash.tar.gz
|
||||
RUN wget "http://mirrors.zhamao.xin/pecl/inotify-${VER_INOTIFY}.tgz" -O inotify.tar.gz
|
||||
RUN wget "http://mirrors.zhamao.xin/pecl/redis-${VER_REDIS}.tgz" -O redis.tar.gz
|
||||
RUN wget "https://dl.zhamao.me/libxml2/libxml2-${VER_LIBXML2}.tar.gz" -O libxml2.tar.gz
|
||||
RUN wget "https://dl.zhamao.me/liblzma/liblzma.tar.gz"
|
||||
RUN wget "https://dl.zhamao.me/curl/curl-${VER_CURL}.tar.gz" -O curl.tar.gz
|
||||
|
||||
RUN tar -xf php.tar.gz && \
|
||||
tar -xf swoole.tar.gz && \
|
||||
tar -xf hash.tar.gz && \
|
||||
tar -xf inotify.tar.gz && \
|
||||
tar -xf redis.tar.gz && \
|
||||
tar -xf libxml2.tar.gz && \
|
||||
tar -xf liblzma.tar.gz && \
|
||||
tar -xf curl.tar.gz
|
||||
|
||||
RUN cd liblzma && \
|
||||
./configure && \
|
||||
make -j4 && \
|
||||
make install && \
|
||||
echo "编译 liblzma 完成!"
|
||||
|
||||
RUN cd "libxml2-${VER_LIBXML2}" && \
|
||||
./configure --with-lzma --without-python && \
|
||||
make -j4 && \
|
||||
make install && \
|
||||
echo "编译 libxml2 完成!"
|
||||
|
||||
RUN cd "curl-${VER_CURL}" && \
|
||||
CC=gcc CXX=g++ CFLAGS=-fPIC CPPFLAGS=-fPIC ./configure \
|
||||
--without-nghttp2 \
|
||||
--with-ssl=/usr \
|
||||
--with-pic=pic \
|
||||
--enable-ipv6 \
|
||||
--enable-shared=no \
|
||||
--without-libidn2 \
|
||||
--disable-ldap \
|
||||
--without-libpsl \
|
||||
--without-lber \
|
||||
--enable-ares && \
|
||||
make -j4 && \
|
||||
make install && \
|
||||
echo "编译 curl 完成!"
|
||||
|
||||
RUN mv "swoole-${VER_SWOOLE}" "php-${VER_PHP}/ext/swoole" && \
|
||||
mv "redis-${VER_REDIS}" "php-${VER_PHP}/ext/redis" && \
|
||||
mv "inotify-${VER_INOTIFY}" "php-${VER_PHP}/ext/inotify"
|
||||
|
||||
COPY merge-curl-config.sh /tmp/
|
||||
|
||||
RUN chmod +x /tmp/php-arg.sh && \
|
||||
chmod +x /tmp/merge-curl-config.sh
|
||||
|
||||
RUN "php-${VER_PHP}/ext/swoole/clear.sh" && \
|
||||
cd "php-${VER_PHP}" && \
|
||||
"/tmp/merge-curl-config.sh" && \
|
||||
mv "/app/aa" "ext/curl/config.m4" && \
|
||||
./buildconf --force
|
||||
|
||||
RUN cd "php-${VER_PHP}" && \
|
||||
chmod +x /tmp/php-arg.sh && \
|
||||
echo "Using "$(/tmp/php-arg.sh ${VER_PHP}) && sleep 5s && \
|
||||
./configure LDFLAGS=-static $(/tmp/php-arg.sh ${VER_PHP})
|
||||
|
||||
RUN cd "php-${VER_PHP}" && \
|
||||
sed -ie 's/-export-dynamic//g' "Makefile" && \
|
||||
sed -ie 's/-o \$(SAPI_CLI_PATH)/-all-static -o \$(SAPI_CLI_PATH)/g' "Makefile" && \
|
||||
sed -ie 's/swoole_clock_gettime(CLOCK_REALTIME/clock_gettime(CLOCK_REALTIME/g' "ext/swoole/include/swoole.h" && \
|
||||
make LDFLAGS=-ldl -j4 && \
|
||||
make install
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user