Dockerfile_apnode_20240723

############ 
# apnode/apnode  常用工具,supervisor , jdk11, 带有ed,adminer 文件,php-composer 对应 php83
# apnode/apsdk    完整工具包, jdk-11,maven,nodejs-20,php-83,php-composer,
# apnode/php8    常用工具 单语言
# apnode/jdk8     常用工具 单语言
############
# 2024-0326, 切换配置目录到 /.config/
# 2024-0430,  node 添加 libc6-compat,
# 2024-0619, 添加 openvscode-server-v1.90.1
# 2024-0723, 修改nginx启动用户为 root, 默认jdk改为jdk11, 
# 默认分base和full版本,apnode, 包含程序文件和启动命令 
############
# 编译 测试 apnode 
# docker build -t apnode:20240723 -f dockerfile/apnode.20240723.Dockerfile . 
# docker tag apnode:20240723 apnode/apnode
# docker push apnode/apnode
############ 
# docker tag apnode:20240723 apnode
# docker run -d  -v $(pwd):/code    -v  /app:/app  --restart=unless-stopped --privileged=true  --net=host  --name=ap   apnode 
# docker run -d  -v  /app:/app  --restart=unless-stopped --privileged=true  -p 80:80 -p 443:443   --name=nginx apnode nginx -g "daemon off;"
# docker run -d  -v $(pwd):/code    -v  /app:/app  --restart=unless-stopped --privileged=true  -p 9000:9000   --name=pems apnode java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=utf-8    -Dserver.port=9000   -Dsolon.config.add=./demo.yml -jar ./user-web-2.0.0.jar
############ 
# docker run -it -d --restart=unless-stopped --net=host --name=test  -v  /app:/app alpine:3.19.1 sh 
# docker exec -it test sh 
# docker container stats --no-stream 
# docker system df -v
# docker login 
############ 
#编译模板 base
# docker build -t apnode/base -f ./Dockerfile.apnode.base .
# docker push apnode/base
############
############
FROM alpine:3.20.0
############
# 1. 设置中国时区镜像, 中文字库,nano,vim,tini,curl, wget, 扩展软件库
RUN sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk --update --no-cache add tzdata  ttf-dejavu font-opensans fontconfig curl wget ca-certificates nano vim  tini util-linux util-linux-misc icu-data-full  alpine-conf && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone   && fc-cache --force && rm -rf /var/cache/apk/*  
###########
# 2. 安装常用工具 git ,zip ,ssh ,nc 
#  apk fetch --recursive --simulate   supervisor supervisor-openrc
# RUN apk add --update --no-cache util-linux git htop zip unzip p7zip netcat-openbsd dropbear-scp dropbear-ssh dropbear-dbclient dropbear-convert   && rm -rf /var/cache/apk/*  
RUN apk add --update --no-cache openssh-client-default  openssh-client-common openssh-keygen  git htop zip unzip p7zip netcat-openbsd frp  && mkdir -p /code  && rm -rf /var/cache/apk/*  
############
# 2.1 安装 supervisor , 需要 python3 , 切换配置目录到 /.config/
RUN apk add --update --no-cache supervisor py3-pip && mkdir -p /code  && mkdir -p /app && mkdir -p /.config/supervisor.d   && sed -i 's/;nodaemon=false/nodaemon=true/' /etc/supervisord.conf && echo 'files = /.config/supervisor.d/*.ini' >> /etc/supervisord.conf  && rm -rf /var/cache/apk/*
############
# 2.2 安装 Nginx, etc/nginx/http.d   替换为 etc/nginx/http.d   .config/nginx.http.d 
RUN apk add --update --no-cache nginx && mkdir -p /run/nginx/ && mkdir -p /.config/nginx.http.d &&  sed -i 's/etc\/nginx\/http.d/.config\/nginx.http.d/' /etc/nginx/nginx.conf &&  sed -i 's/user nginx/user root/g' /etc/nginx/nginx.conf && rm -rf /var/cache/apk/*
############
# 2.3 安装语言运行库,jdk
RUN apk add --update --no-cache  openjdk11   && mkdir -p /root/.m2 && echo 'https://developer.aliyun.com/mvn/guide' > /root/.m2/mirror.txt && echo 'https://mirrors.cloud.tencent.com/help/maven.html' > /root/.m2/mirror.txt  && rm -rf /var/cache/apk/*
######################################################################################################################## 
############
# MAINTAINER apnode.win
LABEL maintainer="admin@apnode.win"
LABEL version="1.2024.0723"
ENTRYPOINT ["/sbin/tini" , "--"]
WORKDIR /code
CMD ["/usr/bin/supervisord","-c","/etc/supervisord.conf","--pidfile","/run/supervisord.pid"]
############
############
# 复制需要的文件
############
ADD .adminer.tar.gz /root/
ADD .ovs.tar.gz        /root/
ADD supervisor.tar   /root/
ADD setup-php83.sh /root/
ADD setup-nodejs.sh /root/
ADD settings.xml    /root/.m2/

######################################################################################################################## 
# FROM apnode:0723
######################################################################################################################## 

# 以下为apsdk内容
# OK: 679 MiB in 307 packages
# 3.2 安装语言运行库,nodejs,配置镜像 
RUN apk add --update --no-cache  nodejs npm libc6-compat  && npm config set registry https://registry.npmmirror.com && rm -rf /var/cache/apk/*
############
# 3.3 安装语言库 php83 , 
RUN apk add --update --no-cache composer php83 php83-bcmath php83-bz2 php83-cgi php83-common php83-ctype php83-curl php83-enchant php83-exif php83-ffi php83-fileinfo php83-fpm php83-gd php83-gettext php83-gmp php83-iconv php83-imap php83-intl php83-ldap php83-litespeed php83-mbstring php83-mysqli php83-mysqlnd php83-odbc php83-opcache php83-openssl php83-pcntl php83-pdo php83-pdo_dblib php83-pdo_mysql php83-pdo_odbc php83-pdo_pgsql php83-pdo_sqlite php83-pear php83-pecl-amqp php83-pecl-apcu php83-pecl-ast php83-pecl-brotli php83-pecl-couchbase php83-pecl-decimal php83-pecl-ds php83-pecl-event php83-pecl-grpc php83-pecl-igbinary php83-pecl-imagick php83-pecl-imagick-dev php83-pecl-luasandbox php83-pecl-lzf php83-pecl-mailparse php83-pecl-maxminddb php83-pecl-mcrypt php83-pecl-memcache php83-pecl-memcached php83-pecl-mongodb php83-pecl-msgpack php83-pecl-opentelemetry php83-pecl-pcov php83-pecl-protobuf php83-pecl-psr php83-pecl-rdkafka php83-pecl-redis php83-pecl-smbclient php83-pecl-ssh2 php83-pecl-swoole php83-pecl-swoole-dev php83-pecl-timezonedb php83-pecl-uploadprogress php83-pecl-uploadprogress-doc php83-pecl-uuid php83-pecl-vips php83-pecl-xdebug php83-pecl-xhprof php83-pecl-xhprof-assets php83-pecl-xlswriter php83-pecl-yaml php83-pecl-zstd php83-pgsql php83-phar php83-phpdbg php83-posix php83-pspell php83-session php83-shmop php83-simplexml php83-snmp php83-soap php83-sockets php83-sodium php83-spx php83-sqlite3 php83-sysvmsg php83-sysvsem php83-sysvshm php83-tidy php83-tokenizer php83-xml php83-xmlreader php83-xmlwriter php83-xsl php83-zip && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && rm -rf /var/cache/apk/*

######################################################################################################################## 
######################################################################################################################## 

 




#__________________________________________________________________________________________________________________________________________________________________________
#__________________________________________________________________________________________________________________________________________________________________________
######################################################################################################################## 
######################################################################################################################## 
# 以下为历史记录便签
######################################################################################################################## 
######################################################################################################################## 
# 配置镜像, composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && rm -rf /var/cache/apk/*
# 去掉 composer 
# apk add composer php82  php82-apache2  php82-bcmath  php82-bz2  php82-calendar  php82-cgi  php82-common  php82-ctype  php82-curl  php82-dba  php82-dbg  php82-dev  php82-doc  php82-dom  php82-embed  php82-enchant  php82-exif  php82-ffi  php82-fileinfo  php82-fpm  php82-ftp  php82-gd  php82-gettext  php82-gmp  php82-iconv  php82-imap  php82-intl  php82-ldap  php82-litespeed  php82-mbstring  php82-mysqli  php82-mysqlnd  php82-odbc  php82-opcache  php82-openssl  php82-pcntl  php82-pdo  php82-pdo_dblib  php82-pdo_mysql  php82-pdo_odbc  php82-pdo_pgsql  php82-pdo_sqlite  php82-pear   php82-pgsql  php82-phar  php82-phpdbg  php82-posix  php82-pspell  php82-session  php82-shmop  php82-simplexml  php82-snmp  php82-soap  php82-sockets  php82-sodium  php82-sqlite3  php82-sysvmsg  php82-sysvsem  php82-sysvshm  php82-tidy  php82-tokenizer  php82-xml  php82-xmlreader  php82-xmlwriter  php82-xsl  php82-zip php82-pecl-redis php82-pecl-swoole  php82-pecl-uuid  php82-pecl-yaml  php82-pecl-imagick php82-pecl-igbinary  php82-pecl-decimal 
# RUN apk add  --update --no-cache   php82  php82-apache2  php82-bcmath  php82-bz2  php82-calendar  php82-cgi  php82-common  php82-ctype  php82-curl  php82-dba  php82-dbg  php82-dev  php82-doc  php82-dom  php82-embed  php82-enchant  php82-exif  php82-ffi  php82-fileinfo  php82-fpm  php82-ftp  php82-gd  php82-gettext  php82-gmp  php82-iconv  php82-imap  php82-intl  php82-ldap  php82-litespeed  php82-mbstring  php82-mysqli  php82-mysqlnd  php82-odbc  php82-opcache  php82-openssl  php82-pcntl  php82-pdo  php82-pdo_dblib  php82-pdo_mysql  php82-pdo_odbc  php82-pdo_pgsql  php82-pdo_sqlite  php82-pear   php82-pgsql  php82-phar  php82-phpdbg  php82-posix  php82-pspell  php82-session  php82-shmop  php82-simplexml  php82-snmp  php82-soap  php82-sockets  php82-sodium  php82-sqlite3  php82-sysvmsg  php82-sysvsem  php82-sysvshm  php82-tidy  php82-tokenizer  php82-xml  php82-xmlreader  php82-xmlwriter  php82-xsl  php82-zip php82-pecl-redis php82-pecl-swoole  php82-pecl-uuid  php82-pecl-yaml  php82-pecl-imagick php82-pecl-igbinary  php82-pecl-decimal  && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && rm -rf /var/cache/apk/*

# mysql-client
############
# FROM apnode/apnode:latest
############
# 3.4 安装 openssl  复制 
# RUN apk add --update --no-cache openssl 
# ADD .ovs.tar.gz /.config/
# ADD adminer.zip /.config/
# CMD ["sh","/.config/.ovs/ovs.sh"]
############
# rm  .ovs.tar.gz && tar cvzf .ovs.tar.gz .ovs/ 
# docker stop ovs && docker rm ovs &&  docker rmi apnode/ovs  &&  docker build -t apnode/ovs -f ./Dockerfile.0506  .
#
# docker run -it -d --name=ovs -v /app:/app -p 0.0.0.0:12080:12080 apnode/ovs && docker logs -n 10 ovs
# docker inspect ovs | grep Dir

############
# CMD ["supervisord" "-c" "/etc/supervisord.conf"]
############
# ed, openvscode , 
# https://github.com/gitpod-io/openvscode-server/releases/download/openvscode-server-v1.88.0/openvscode-server-v1.88.0-linux-x64.tar.gz
############
# 2.  整合 中文字体,编译工具,图片库
# RUN apk --update --no-cache add ttf-dejavu fontconfig curl ca-certificates gcc g++ make cmake automake autoconf libpng libpng-dev libwebp libwebp-dev  freetype freetype-dev libjpeg libjpeg-turbo libzip libzip-dev libjpeg-turbo-dev zlib sqlite sqlite-dev  postgresql-dev  icu-data-full
# FROM php:8.0-alpine 
# 设置字符集
# ENV LANG=C.UTF-8
# ENV LANG en_US.UTF-8
# MAINTAINER apnode.win
############
############
# /bin/sh -c { 		echo '#!/bin/sh'; 		echo 'set -e'; 		echo; 		echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; 	} > /usr/local/bin/docker-java-home 	&& chmod +x /usr/local/bin/docker-java-home
# ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
# ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
# ENV JAVA_VERSION=8u212
# ENV JAVA_ALPINE_VERSION=8.212.04-r0
# /bin/sh -c set -x 	&& apk add --no-cache 		openjdk8="$JAVA_ALPINE_VERSION" 	&& [ "$JAVA_HOME" = "$(docker-java-home)" ]
###########
# ENV LANG=en_US.UTF-8
# /bin/sh -c sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# /bin/sh -c apk add --update --no-cache ttf-dejavu fontconfig tzdata  && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime    && echo "Asia/Shanghai" > /etc/timezone && rm -rf /var/cache/apk/*
# /bin/sh -c apk add --update --no-cache supervisor && mkdir -p /app/supervisor.d   && sed -i 's/;nodaemon=false/nodaemon=true/' /etc/supervisord.conf && echo 'files = /app/supervisor.d/*.ini' >> /etc/supervisord.conf  && rm -rf /var/cache/apk/*
# /bin/sh -c apk add --update --no-cache nginx mysql-client && mkdir -p /run/nginx/ && mkdir -p /app/nginx.d &&  sed -i 's/etc\/nginx\/conf.d/app\/nginx.d/' /etc/nginx/nginx.conf && rm -rf /var/cache/apk/*
# /bin/sh -c apk add --update --no-cache util-linux git nodejs npm && rm -rf /var/cache/apk/*

# /bin/sh -c apk add  --update --no-cache  composer php82-curl php82-iconv php82-mbstring php82-openssl php82-zip php82-phar php82-pdo_mysql php82-mysqlnd php82-intl php82-pecl-redis php82-sqlite3 php82-pecl-swoole php82-tokenizer php82-sockets php82-sqlite3 php82-pecl-igbinary php82-pecl-msgpack php82-pecl-mcrypt php82-pecl-imagick php82-pecl-uuid php82-pdo_pgsql php82-sodium  && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# /bin/sh -c apk add --update --no-cache  openjdk8-jre  nodejs npm &&  npm config set registry https://registry.npmmirror.com
# /bin/sh -c apk add --update --no-cache  supervisor  nginx && mkdir -p /etc/supervisor.d  &&  sed -i 's/;nodaemon=false/nodaemon=true\n;nodaemon=false/g' /etc/supervisord.conf
# /bin/sh -c apk add --update --no-cache  tzdata  ttf-dejavu fontconfig curl ca-certificates git  nano vim  tini util-linux-misc icu-data-full  alpine-conf  && /sbin/setup-timezone -z Asia/Shanghai
# /bin/sh -c sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
############
# 设置镜像
# RUN sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 设置时区
# RUN apk --update --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
# 整合,设置镜像时区
# RUN sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk --update --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
############
# 安装 中文字体 CURL
# RUN apk --update --no-cache add ttf-dejavu fontconfig curl ca-certificates
# 安装 图片库
# RUN apk --update --no-cache add libpng libpng-dev libwebp libwebp-dev  freetype freetype-dev libjpeg libjpeg-turbo libzip libzip-dev libjpeg-turbo-dev zlib sqlite sqlite-dev  postgresql-dev  icu-data-full
# 安装 编译工具
# RUN apk --update --no-cache add gcc g++ make cmake automake autoconf
# 整合 中文字体,编译工具,图片库
# RUN apk --update --no-cache add ttf-dejavu fontconfig curl ca-certificates gcc g++ make cmake automake autoconf libpng libpng-dev libwebp libwebp-dev  freetype freetype-dev libjpeg libjpeg-turbo libzip libzip-dev libjpeg-turbo-dev zlib sqlite sqlite-dev  postgresql-dev  icu-data-full
############
# 安装 PHP-GD,MySQL, pgsql,sqlite
#RUN docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2 && docker-php-ext-install pcntl zip gd mysqli pdo pdo_mysql pdo_sqlite pdo_pgsql
#RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/ --with-gd
# RUN docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2 && docker-php-ext-install pcntl zip gd mysqli pdo pdo_mysql pdo_sqlite pdo_pgsql
# 安装 PHP-Redis
# RUN docker-php-source extract && pecl install redis && echo extension=redis.so >/usr/local/etc/php/conf.d/pecl-redis.ini && docker-php-source delete
# RUN docker-php-source extract && pecl install redis && docker-php-ext-enable redis && docker-php-source delete
# 安装客户端
# RUN apk add --update --no-cache mysql-client
############
# CMD ["/bin/sh"]

############
# apnode/apnode:latest
# 测试 docker run -it --restart=unless-stopped --name=3.19 --net=host -v $(pwd):/app   alpine:3.19 sh
# 查看 docker container stats --no-stream 
# docker system df -v
############
#编译模板
# docker login 
# docker build -t apnode -f ./Dockerfile.apnode .
# docker tag apnode  apnode/apnode
# docker push apnode/apnode
############
#编译模板 jdk8
# docker login 
# docker build -t apnode/jdk8 -f ./Dockerfile.apnode.jdk8 .
# docker push apnode/jdk8
############
#编译模板 base
# docker login 
# docker build -t apnode:jdk8 -f ./Dockerfile.apnode.jdk8 .
# docker tag apnode:jdk8  apnode/jdk8
# docker push apnode/jdk8
############
# FROM alpine:3.19
############
# 1. 设置中国时区镜像, 中文字库,nano,vim,tini,curl
# RUN sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk --update --no-cache add alpine-conf ca-certificates curl fontconfig git htop icu-data-full inetutils-telnet nano p7zip tini ttf-dejavu tzdata unzip util-linux util-linux-misc vim zip  && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone   && fc-cache --force && rm -rf /var/cache/apk/*  
############
# apnode:last 满工具
# apnode:base 常用工具 无语言
# apnode:php8   常用工具 单语言
# apnode:jdk8    常用工具 单语言
# apnode:jdk13  常用工具 单语言
############ openssh-client-common openssh-keygen  
#  breaks: dropbear-ssh  util-linux git htop zip unzip p7zip 
# 2. 安装常用工具 git ,nginx ,进程守护 netcat-openbsd dropbear-scp dropbear-ssh dropbear-dbclient dropbear-convert  inetutils-telnet
# git htop zip unzip p7zip netcat-openbsd dropbear-scp dropbear-ssh dropbear-dbclient dropbear-convert  inetutils-telnet 
#  apk fetch --recursive --simulate   supervisor supervisor-openrc
# RUN apk add --update --no-cache openssh-client-default  openssh-client-common openssh-keygen    && rm -rf /var/cache/apk/*  
############
# 2.1 安装 supervisor , 需要 python3 
# RUN apk add --update --no-cache supervisor py3-pip && mkdir -p /code  && mkdir -p /app && mkdir -p /.docker/supervisor.d   && sed -i 's/;nodaemon=false/nodaemon=true/' /etc/supervisord.conf && echo 'files = /.docker/supervisor.d/*.ini' >> /etc/supervisord.conf  && rm -rf /var/cache/apk/*
############
# 以上为BASE内容
############
# MAINTAINER apnode.win
# WORKDIR /code 
# ENTRYPOINT ["/sbin/tini" , "--"]
# CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
############ 
# 3.1 安装 Nginx
#  include /etc/nginx/http.d/*.conf;   替换为  include /.docker/nginx/http.d/*.conf; 
# RUN apk add --update --no-cache nginx && mkdir -p /.docker/nginx.conf.d/ && mkdir -p /.docker/nginx.http.d/ && cp /etc/nginx/nginx.conf  /etc/nginx/nginx.conf.sed.backup  &&  sed -i 's/etc\/nginx\/conf.d/.docker\/nginx.conf.d/' /etc/nginx/nginx.conf   &&  sed -i 's/etc\/nginx\/http.d/.docker\/nginx.http.d/' /etc/nginx/nginx.conf  && rm -rf /var/cache/apk/*
# 3.2 安装语言运行库,java8,nodejs  
# RUN apk add --update --no-cache  openjdk8   maven && rm -rf /var/cache/apk/*
# 3.3 安装语言运行库,nodejs,
# RUN apk add --update --no-cache  nodejs npm   &&  npm config set registry https://registry.npmmirror.com && rm -rf /var/cache/apk/*
# 3.4 安装语言库 php8
# apk fetch --recursive --simulate php-openssl
# RUN apk add  --update --no-cache  composer php83-curl php83-fpm php83-gd php83-iconv php83-intl php83-mbstring php83-mysqli php83-mysqlnd php83-openssl php83-pdo php83-pdo_mysql php83-pdo_pgsql php83-pdo_sqlite php83-pecl-igbinary php83-pecl-imagick  php83-pecl-memcached php83-pecl-msgpack php83-pecl-redis  php83-pecl-swoole   php83-pgsql php83-phar php83-sockets php83-sodium  php83-sqlite3 php83-tokenizer php83-zip && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && rm -rf /var/cache/apk/*
# 3.4 安装数据库客户端mysql-client,
# 3.5 安装 python
# pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# pip config set global.trusted-host mirrors.aliyun.com
# RUN apk add --update --no-cache supervisor py3-pip && mkdir -p /code  && mkdir -p /app && mkdir -p /.docker/supervisor.d   && sed -i 's/;nodaemon=false/nodaemon=true/' /etc/supervisord.conf && echo 'files = /.docker/supervisor.d/*.ini' >> /etc/supervisord.conf  && rm -rf /var/cache/apk/*
############
############
# 2.  整合 中文字体,编译工具,图片库
# RUN apk --update --no-cache add ttf-dejavu fontconfig curl ca-certificates gcc g++ make cmake automake autoconf libpng libpng-dev libwebp libwebp-dev  freetype freetype-dev libjpeg libjpeg-turbo libzip libzip-dev libjpeg-turbo-dev zlib sqlite sqlite-dev  postgresql-dev  icu-data-full
# FROM php:8.0-alpine 
#设置字符集
# ENV LANG=C.UTF-8
# ENV LANG en_US.UTF-8
# MAINTAINER apnode.win
############
############
# /bin/sh -c { 		echo '#!/bin/sh'; 		echo 'set -e'; 		echo; 		echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; 	} > /usr/local/bin/docker-java-home 	&& chmod +x /usr/local/bin/docker-java-home
# ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
# ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
# ENV JAVA_VERSION=8u212
# ENV JAVA_ALPINE_VERSION=8.212.04-r0
# /bin/sh -c set -x 	&& apk add --no-cache 		openjdk8="$JAVA_ALPINE_VERSION" 	&& [ "$JAVA_HOME" = "$(docker-java-home)" ]
###########
# ENV LANG=en_US.UTF-8
# /bin/sh -c sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# /bin/sh -c apk add --update --no-cache ttf-dejavu fontconfig tzdata  && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime    && echo "Asia/Shanghai" > /etc/timezone && rm -rf /var/cache/apk/*
# /bin/sh -c apk add --update --no-cache supervisor && mkdir -p /app/supervisor.d   && sed -i 's/;nodaemon=false/nodaemon=true/' /etc/supervisord.conf && echo 'files = /app/supervisor.d/*.ini' >> /etc/supervisord.conf  && rm -rf /var/cache/apk/*
# /bin/sh -c apk add --update --no-cache nginx mysql-client && mkdir -p /run/nginx/ && mkdir -p /app/nginx.d &&  sed -i 's/etc\/nginx\/conf.d/app\/nginx.d/' /etc/nginx/nginx.conf && rm -rf /var/cache/apk/*
# /bin/sh -c apk add --update --no-cache util-linux git nodejs npm && rm -rf /var/cache/apk/*
# /bin/sh -c apk add  --update --no-cache  composer php8-curl php8-iconv php8-mbstring php8-openssl php8-zip php8-phar php8-pdo_mysql php8-mysqlnd php8-intl php8-pecl-redis php8-sqlite3 php8-pecl-swoole php8-tokenizer php8-sockets php8-sqlite3 php8-pecl-igbinary php8-pecl-msgpack php8-pecl-mcrypt php8-pecl-imagick php8-pecl-uuid php8-pdo_pgsql php8-sodium  && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# /bin/sh -c apk add --update --no-cache  openjdk8-jre  nodejs npm &&  npm config set registry https://registry.npmmirror.com
# /bin/sh -c apk add --update --no-cache  supervisor  nginx && mkdir -p /etc/supervisor.d  &&  sed -i 's/;nodaemon=false/nodaemon=true\n;nodaemon=false/g' /etc/supervisord.conf
# /bin/sh -c apk add --update --no-cache  tzdata  ttf-dejavu fontconfig curl ca-certificates git  nano vim  tini util-linux-misc icu-data-full  alpine-conf  && /sbin/setup-timezone -z Asia/Shanghai
# /bin/sh -c sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
############
# 设置镜像
# RUN sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 设置时区
# RUN apk --update --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
# 整合,设置镜像时区
# RUN sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk --update --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
############
# 安装 中文字体 CURL
# RUN apk --update --no-cache add ttf-dejavu fontconfig curl ca-certificates
# 安装 图片库
# RUN apk --update --no-cache add libpng libpng-dev libwebp libwebp-dev  freetype freetype-dev libjpeg libjpeg-turbo libzip libzip-dev libjpeg-turbo-dev zlib sqlite sqlite-dev  postgresql-dev  icu-data-full
# 安装 编译工具
# RUN apk --update --no-cache add gcc g++ make cmake automake autoconf
# 整合 中文字体,编译工具,图片库
# RUN apk --update --no-cache add ttf-dejavu fontconfig curl ca-certificates gcc g++ make cmake automake autoconf libpng libpng-dev libwebp libwebp-dev  freetype freetype-dev libjpeg libjpeg-turbo libzip libzip-dev libjpeg-turbo-dev zlib sqlite sqlite-dev  postgresql-dev  icu-data-full
############
# 安装 PHP-GD,MySQL, pgsql,sqlite
#RUN docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2 && docker-php-ext-install pcntl zip gd mysqli pdo pdo_mysql pdo_sqlite pdo_pgsql
#RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/ --with-gd
# RUN docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2 && docker-php-ext-install pcntl zip gd mysqli pdo pdo_mysql pdo_sqlite pdo_pgsql
# 安装 PHP-Redis
# RUN docker-php-source extract && pecl install redis && echo extension=redis.so >/usr/local/etc/php/conf.d/pecl-redis.ini && docker-php-source delete
# RUN docker-php-source extract && pecl install redis && docker-php-ext-enable redis && docker-php-source delete
# 安装客户端
# RUN apk add --update --no-cache mysql-client
############
# CMD ["/bin/sh"]
# FROM php:8.0-alpine 
#设置字符集
# ENV LANG en_US.UTF-8
############
# 设置镜像
# RUN sed -i '3s/#//' /etc/apk/repositories && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 设置时区
# RUN apk --update --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
# 整合,设置镜像时区
############
# 安装 中文字体 CURL
# RUN apk --update --no-cache add ttf-dejavu fontconfig curl ca-certificates
# 安装 图片库
# RUN apk --update --no-cache add libpng libpng-dev libwebp libwebp-dev  freetype freetype-dev libjpeg libjpeg-turbo libzip libzip-dev libjpeg-turbo-dev zlib sqlite sqlite-dev  postgresql-dev  icu-data-full
# 安装 编译工具
# RUN apk --update --no-cache add gcc g++ make cmake automake autoconf
# 整合 中文字体,编译工具,图片库
# RUN apk --update --no-cache add ttf-dejavu fontconfig curl ca-certificates gcc g++ make cmake automake autoconf libpng libpng-dev libwebp libwebp-dev  freetype freetype-dev libjpeg libjpeg-turbo libzip libzip-dev libjpeg-turbo-dev zlib sqlite sqlite-dev  postgresql-dev  icu-data-full
############
# 安装 PHP-GD,MySQL, pgsql,sqlite
#RUN docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2 && docker-php-ext-install pcntl zip gd mysqli pdo pdo_mysql pdo_sqlite pdo_pgsql
#RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/ --with-gd
# RUN docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2 && docker-php-ext-install pcntl zip gd mysqli pdo pdo_mysql pdo_sqlite pdo_pgsql
# 安装 PHP-Redis
# RUN docker-php-source extract && pecl install redis && echo extension=redis.so >/usr/local/etc/php/conf.d/pecl-redis.ini && docker-php-source delete
# RUN docker-php-source extract && pecl install redis && docker-php-ext-enable redis && docker-php-source delete
# 安装客户端
# RUN apk add --update --no-cache mysql-client
############
# apk fetch --recursive --simulate php-openssl 
# RUN apk add  --update --no-cache  composer php82-curl php82-iconv php82-mbstring php82-openssl php82-zip php82-phar php82-pdo_mysql php82-mysqlnd php82-intl php82-pecl-redis php82-sqlite3 php82-pecl-swoole php82-tokenizer php82-sockets php82-sqlite3 php82-pecl-igbinary php82-pecl-msgpack php82-pecl-mcrypt php82-pecl-imagick php82-pecl-uuid php82-pdo_pgsql php82-sodium  && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && rm -rf /var/cache/apk/*