diff --git a/Dockerfile b/Dockerfile index 0ea877b..a3b65cf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,14 +16,14 @@ ENV DJANGO_WEB_PORT=8000 COPY pip.conf /root/.pip/pip.conf # 创建 myproject 文件夹 -RUN mkdir -p /var/www/html/ptools +RUN mkdir -p /var/www/html/ # 将 myproject 文件夹为工作目录 -WORKDIR /var/www/html/ptools +WORKDIR /var/www/html/ # 将当前目录加入到工作目录中(. 表示当前目录) #ADD . /var/www/html/ptools - +ADD ./start.sh /var/www/html/ # 更新pip版本 RUN /usr/local/bin/python -m pip install --upgrade pip @@ -35,7 +35,6 @@ RUN /usr/local/bin/python -m pip install --upgrade pip # 给start.sh可执行权限 RUN chmod +x ./start.sh -RUN chmod +x ./update.sh # 安装redis RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list @@ -45,6 +44,7 @@ RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list #RUN yes|apt install redis-server VOLUME ["/var/www/html/ptools/db"] +VOLUME ["/var/www/html/ptools"] EXPOSE 8000 #ENTRYPOINT ["redis-server","/etc/redis/redis.conf"] diff --git a/start.sh b/start.sh index 3177701..2940bdd 100644 --- a/start.sh +++ b/start.sh @@ -1,6 +1,5 @@ #!/bin/bash -pip install -r requirements.txt CONTAINER_ALREADY_STARTED="CONTAINER_ALREADY_STARTED_PLACEHOLDER" if [ ! -e $CONTAINER_ALREADY_STARTED ]; then @@ -12,6 +11,7 @@ if [ ! -e $CONTAINER_ALREADY_STARTED ]; then cd ptools && # 设置拉取最新文件并覆盖 git config pull.ff only && + pip install -r requirements.txt && python manage.py makemigrations && python manage.py migrate && python manage.py loaddata pt.json @@ -23,6 +23,8 @@ if [ ! -e $CONTAINER_ALREADY_STARTED ]; then python manage.py createsuperuser --noinput else echo "-- Not first container startup --" + cd ptools && + pip install -r requirements.txt if [ ! -f ./db/db.sqlite3 ]; then echo "-- 初始化数据库 init database --" # 如果数据库存在,就不执行 diff --git a/update.sh b/update.sh index 45a04a1..b58a57b 100755 --- a/update.sh +++ b/update.sh @@ -1,3 +1,4 @@ git pull && + mv -f ./start.sh ../start.sh && python manage.py makemigrations && - python manage.py migrate \ No newline at end of file + python manage.py migrate