From 6938d6b9a0ddbc33081f3aefdb47710c15b8c35b Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Wed, 22 Mar 2023 19:19:00 +0800 Subject: [PATCH] build: refactor the docker image --- Dockerfile | 53 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4f50391..16aa994 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,37 @@ -FROM alpine as asset -COPY ./ / -RUN sh /asset.sh +ARG ALPINE="alpine:3.15" -FROM alpine -COPY --from=asset /tmp/alltube/ /var/www/alltube/ -RUN apk --update add --no-cache nginx ffmpeg python3 php php-fpm php-dom php-xml php-zip php-gmp php-json php-phar php-intl php-openssl php-mbstring php-gettext php-xmlwriter php-tokenizer php-simplexml && \ - rm -rf /var/www/localhost && rm -rf /etc/nginx/http.d && \ - mv -f /var/www/alltube/nginx.conf /etc/nginx/ && \ - ln -s /usr/bin/python3 /usr/bin/python && \ - mv /var/www/alltube/init.sh / && \ - php /var/www/alltube/composer-setup.php && rm -f /var/www/alltube/composer-setup.php && \ - mv ./composer.phar /usr/bin/composer && \ - chmod 777 /var/www/alltube/templates_c && \ - cd /var/www/alltube && composer install && \ - cd ./config && mv config.example.yml config.yml -EXPOSE 80 -CMD ["sh","init.sh"] +FROM ${ALPINE} as composer +# TODO: remove php-json after php8 (>=alpine:3.16) +RUN apk add php php-phar php-iconv php-openssl php-json +RUN wget https://install.phpcomposer.com/installer +RUN php installer + +FROM ${ALPINE} as build +ENV ALLTUBE="3.1.1" +RUN apk add php php-phar php-mbstring php-openssl +# TODO: remove php-json after php8 (>=alpine:3.16) +RUN apk add php-dom php-gmp php-xml php-intl php-json php-gettext php-simplexml php-tokenizer php-xmlwriter +RUN wget https://github.com/Rudloff/alltube/releases/download/${ALLTUBE}/alltube-${ALLTUBE}.zip && \ + unzip alltube-${ALLTUBE}.zip +COPY --from=composer /composer.phar /usr/bin/composer +WORKDIR ./alltube/ +RUN composer install --prefer-dist --no-progress --no-dev --optimize-autoloader +RUN chmod 777 ./templates_c/ +WORKDIR ./config/ +RUN mv ./config.example.yml ./config.yml + +FROM ${ALPINE} +# TODO: remove php-json after php8 (>=alpine:3.16) +# TODO: /usr/bin/python already exist after alpine:3.17 +RUN apk add --no-cache nginx python3 php-fpm php-mbstring \ + php-dom php-gmp php-xml php-intl php-json php-gettext php-simplexml php-tokenizer php-xmlwriter + +COPY --from=build /alltube/ /var/www/alltube/ + +#RUN apk add php-zip +#RUN +# mv -f /var/www/alltube/nginx.conf /etc/nginx/ && \ +# mv /var/www/alltube/init.sh / && \ + +#EXPOSE 80 +#CMD ["sh","init.sh"]