# FROM arm64v8/alpine # FROM arm64v8/alpine:latest FROM arm64v8/alpine:3.12 LABEL maintainer="david <367013672@qq.com>" version="1.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"} \ cron="3 */10 * * *" ## # ---------- building ---------- ## 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 \ && cd /IYUU && php -r "file_exists('.env') || copy('.env.example', '.env');" \ && 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 \ # ---------- some config,clear work ---------- && cd /etc/php7 \ # - config PHP && { \ echo "upload_max_filesize=100M"; \ echo "post_max_size=108M"; \ echo "memory_limit=1024M"; \ echo "date.timezone=${TIMEZONE}"; \ } | tee conf.d/99-overrides.ini \ # - config timezone && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ && echo "${TIMEZONE}" > /etc/timezone \ && crontab -l > /tmp/crontab.bak \ && echo "$cron cd /IYUU && git fetch --all && git reset --hard origin/master" >> /tmp/crontab.bak \ && echo '10 */12 * * * /usr/bin/php /IYUU/start.php restart -d' >> /tmp/crontab.bak \ && crontab /tmp/crontab.bak \ # ---------- 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 \ && chmod +x /entrypoint.sh \ && echo -e "\033[42;37m Build Completed :).\033[0m\n" EXPOSE 8787 VOLUME ["/IYUU/db", "/IYUU"] WORKDIR /IYUU ENTRYPOINT ["/entrypoint.sh"] # CMD /run.sh