DOCKER部署解决时区问题


#1

使用DOCKER部署的同学会发现系统的时间和我们的北京时间不一致,仅通过修改配置文件seahub_settings.py也不行,这是因为seafile镜像的操作系统ubuntu是简化版的,时区是utc且无法修改,因此需要重新制作新的镜像:

  1. docker pull seafileltd/seafile:latest #拉取官方镜像

  2. vi Dockerfile #添加Dockerfile文件
    From seafileltd/seafile:latest
    RUN apt-get update && apt-get install -y tzdata
    && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    && echo “Asia/Shanghai” > /etc/timezone

  3. docker build -t seafile:xxxx ./ #使用Dockerfile生成新的镜像,xxxx是tag

  4. docker run -d --name seafile
    -e SEAFILE_SERVER_LETSENCRYPT=true
    -e SEAFILE_SERVER_HOSTNAME=seafile.example.com
    -e SEAFILE_ADMIN_EMAIL=me@example.com
    -e SEAFILE_ADMIN_PASSWORD=a_very_secret_password
    -v /opt/seafile-data:/shared
    -p 80:80
    -p 443:443
    –restart=always
    seafile:xxxx

  5. 编辑seahub_settings.py,增加:TIME_ZONE = ‘Asia/Shanghai’

  6. docker restart seafile

  7. chkconfig docker on #配合restart=always,在docker挂掉或宿主机重启时自启动

完。