mirror of
https://github.com/ledccn/IYUUPlus.git
synced 2024-09-20 07:05:28 +00:00
1. 修改更新脚本的逻辑,现在在启动容器时才写入crontab表,并且允许用户自己定义更新时间,成功更新脚本后才会重启IYUU主程序;2. 增加使用github action构建镜像,并且可以同步构建linux/386,linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6,linux/s390x这7个平台的镜像。
This commit is contained in:
parent
c55608956c
commit
9f158d44b3
57
.github/workflows/build.yml
vendored
Normal file
57
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
name: 构建IYUUPlus镜像
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
name: 构建IYUUPlus
|
||||
env:
|
||||
IMAGE_NAME: iyuuplus
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@master
|
||||
|
||||
-
|
||||
name: Set Up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
-
|
||||
name: Set Up Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
-
|
||||
name: Login DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
-
|
||||
name: Set Up Cache
|
||||
uses: actions/cache@v2
|
||||
id: buildx-cache
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: ${{ runner.os }}-buildx
|
||||
|
||||
-
|
||||
name: Buildx
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
file: docker/Dockerfile
|
||||
platforms: linux/386,linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6,linux/s390x
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest
|
||||
-
|
||||
name: Update DockerHub Description
|
||||
uses: christian-korneck/update-container-description-action@v1
|
||||
env:
|
||||
DOCKER_USER: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
DOCKER_PASS: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
with:
|
||||
destination_container_repo: ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}
|
||||
provider: dockerhub
|
||||
readme_file: ./readme.md
|
|
@ -1,125 +0,0 @@
|
|||
FROM alpine:latest
|
||||
#FROM alpine:3.12
|
||||
#FROM alpine:3.8
|
||||
#FROM swoft/alphp:base
|
||||
#FROM swoft/alphp:cli
|
||||
|
||||
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 \
|
||||
&& git clone https://gitee.com/ledc/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
|
|
@ -1,6 +1,8 @@
|
|||
# FROM arm64v8/alpine
|
||||
# FROM arm64v8/alpine:latest
|
||||
FROM arm64v8/alpine:3.12
|
||||
FROM alpine:latest
|
||||
#FROM alpine:3.12
|
||||
#FROM alpine:3.8
|
||||
#FROM swoft/alphp:base
|
||||
#FROM swoft/alphp:cli
|
||||
|
||||
LABEL maintainer="david <367013672@qq.com>" version="1.0"
|
||||
|
||||
|
@ -16,8 +18,7 @@ ARG app_env=prod
|
|||
# ARG add_user=www-data
|
||||
|
||||
ENV APP_ENV=${app_env:-"prod"} \
|
||||
TIMEZONE=${timezone:-"Asia/Shanghai"} \
|
||||
cron="10 */10 * * *"
|
||||
TIMEZONE=${timezone:-"Asia/Shanghai"}
|
||||
|
||||
##
|
||||
# ---------- building ----------
|
||||
|
@ -100,10 +101,6 @@ RUN set -ex \
|
|||
# - 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} \
|
||||
|
@ -113,11 +110,9 @@ RUN set -ex \
|
|||
# && 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
|
0
docker/AMD64/build.sh → docker/build.amd64.sh
Normal file → Executable file
0
docker/AMD64/build.sh → docker/build.amd64.sh
Normal file → Executable file
0
docker/Arm64v8/build.sh → docker/build.arm64.sh
Normal file → Executable file
0
docker/Arm64v8/build.sh → docker/build.arm64.sh
Normal file → Executable file
0
docker/Arm64v8/build.n1.sh → docker/build.n1.sh
Normal file → Executable file
0
docker/Arm64v8/build.n1.sh → docker/build.n1.sh
Normal file → Executable file
36
docker/entrypoint.sh
Normal file → Executable file
36
docker/entrypoint.sh
Normal file → Executable file
|
@ -1,11 +1,29 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
envFile="/IYUU/.env"
|
||||
if [ ! -f "$envFile" ]; then
|
||||
#git clone https://github.com/ledccn/IYUUPlus.git /IYUU
|
||||
git clone https://gitee.com/ledc/iyuuplus.git /IYUU
|
||||
cd /IYUU && php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
|
||||
cd /IYUU
|
||||
|
||||
if [[ ! -d /IYUU/.git ]]; then
|
||||
#git clone https://github.com/ledccn/IYUUPlus.git /IYUU
|
||||
git clone https://gitee.com/ledc/iyuuplus.git /IYUU
|
||||
else
|
||||
git fetch --all
|
||||
git reset --hard origin/master
|
||||
git pull
|
||||
fi
|
||||
cd /IYUU && git fetch --all && git reset --hard origin/master
|
||||
/usr/bin/php /IYUU/start.php start -d
|
||||
/usr/sbin/crond -f
|
||||
|
||||
if [ ! -s .env ]; then
|
||||
cp .env.example .env
|
||||
fi
|
||||
|
||||
if [[ -z ${CRON_UPDATE} ]]; then
|
||||
CRON_UPDATE="23 3-23/6 * * *"
|
||||
fi
|
||||
|
||||
echo "设置cron..."
|
||||
echo "${CRON_UPDATE} cd /IYUU && git fetch --all && git reset --hard origin/master && git pull && php start.php restart -d" | crontab -
|
||||
|
||||
echo "当前crontab如下:"
|
||||
crontab -l
|
||||
|
||||
php /IYUU/start.php start -d
|
||||
crond -f
|
||||
|
|
0
docker/example.sh
Normal file → Executable file
0
docker/example.sh
Normal file → Executable file
0
docker/Arm64v8/push.sh → docker/push.sh
Normal file → Executable file
0
docker/Arm64v8/push.sh → docker/push.sh
Normal file → Executable file
Loading…
Reference in New Issue
Block a user