IYUUPlus/docker/Dockerfile

114 lines
3.3 KiB
Docker

FROM alpine:latest
LABEL maintainer="david <367013672@qq.com>" version="2.0"
##
# ---------- env settings ----------
##
# --build-arg timezone=Asia/Shanghai
ARG timezone
# prod pre test dev
ARG app_env=prod
# default use www-data user
# ARG add_user=www-data
ENV APP_ENV=${app_env:-"prod"} \
TIMEZONE=${timezone:-"Asia/Shanghai"}
##
# ---------- building ----------
##
WORKDIR /IYUU
RUN set -ex \
# change apk source repo
#&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/' /etc/apk/repositories \
&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \
&& apk update \
&& apk add --no-cache \
# Install base packages ('ca-certificates' will install 'nghttp2-libs')
ca-certificates \
curl \
tar \
# xz \
libressl \
# openssh \
openssl \
wget \
zip \
unzip \
git \
tzdata \
pcre \
# install php7 and some extensions
php7 \
# php7-common \
# php7-bcmath \
php7-curl \
# php7-ctype \
php7-dom \
# php7-fileinfo \
# php7-gettext \
# php7-gd \
# php7-iconv \
# php7-imagick \
php7-json \
php7-mbstring \
#php7-mongodb \
# php7-mysqlnd \
php7-openssl \
php7-opcache \
php7-pdo \
# php7-pdo_mysql \
php7-pdo_sqlite \
php7-phar \
php7-pcntl \
php7-posix \
# php7-redis \
php7-simplexml \
php7-sockets \
# php7-sodium \
php7-session \
# php7-sysvshm \
# php7-sysvmsg \
# php7-sysvsem \
# php7-tokenizer \
php7-zip \
php7-zlib \
php7-xml \
&& git clone https://github.com/ledccn/IYUUPlus.git /IYUU \
# && git clone https://gitee.com/ledc/iyuuplus.git /IYUU \
&& git remote set-url origin https://gitee.com/ledc/iyuuplus.git \
&& git config --global pull.ff only \
&& apk del --purge *-dev \
# install latest composer
&& wget https://getcomposer.org/composer.phar \
&& mv composer.phar /usr/local/bin/composer \
# make it executable
&& chmod +x /usr/local/bin/composer \
# - config PHP
&& { \
echo "upload_max_filesize=100M"; \
echo "post_max_size=108M"; \
echo "memory_limit=1024M"; \
echo "date.timezone=${TIMEZONE}"; \
} | tee /etc/php7/conf.d/99-overrides.ini \
# - config timezone
&& ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
&& echo "${TIMEZONE}" > /etc/timezone \
# ---------- some config work ----------
# - ensure 'www-data' user exists(82 is the standard uid/gid for "www-data" in Alpine)
# && addgroup -g 82 -S ${add_user} \
# && adduser -u 82 -D -S -G ${add_user} ${add_user} \
# # - create user dir
# && mkdir -p /data \
# && chown -R ${add_user}:${add_user} /data \
&& rm -rf /var/cache/apk/* /tmp/* /usr/share/man /usr/share/php7 \
&& cp /IYUU/docker/entrypoint.sh /entrypoint.sh \
&& echo -e "\033[42;37m Build Completed :).\033[0m\n"
EXPOSE 8787
VOLUME ["/IYUU/db", "/IYUU"]
ENTRYPOINT ["/entrypoint.sh"]