目前我用的是Ubuntu-22.04.4-live-server-amd64版本,点击访问Ubuntu官网,点击直接下载Ubuntu-22.04.4-live-server-amd64
当然,只要使用的其他操作系统可以支持Docker,基本都是可以的。
Step 1:根据上述Ubuntu操作系统环境,使用如下命令安装Docker
sudo snap install docker 或者
sudo apt install docker 上述二者命令均可安装docker,使用其中一种即可(建议用snap方式,方便简洁稳定,可直接开机自启动,并可直接运行docker-compose.yml文件)。
Step 2:安装完成后,通过如下命令查看docker版本查看是否成功
docker -v 显示结果为
Step 3:设置Docker开机自启动
如果通过snap方式安装,则Docker天然为开机自启动,不用额外设置。
如果通过apt方式安装,则按照如下命令进行设置Docker开机自启动:
systemctl enable docker.service 接下来将通过Docker-compose文件进行安装。
Step 1:编辑docker-compose文件:
进入服务器seatable映射目录(我的目录为/root/seatable),新建两个文件.env和docker-compose.yml,其中.env文件是docker-compose.yml的环境变量文件。
vim .env 因为.env为隐藏文件,“ls”命令无法显示,要想查看需要使用如下命令:
ll -a .env文件内容填充如下(自己安装的话需至少更改以下文件的SEATABLE_SERVER_HOSTNAME、SEATABLE_ADMIN_EMAIL、SEATABLE_ADMIN_PASSWORD)
COMPOSE_FILE='docker-compose.yml' COMPOSE_PATH_SEPARATOR=',' SEATABLE_IMAGE=seatable/seatable-developer:latest SEATABLE_VOLUMES=/root/seatable/seatable-data SEATABLE_MYSQL_VOLUMES=/root/seatable/mysql-data SEATABLE_MYSQL_DB_HOST=mariadb SEATABLE_MYSQL_ROOT_PASSWORD=abcd1234 TIME_ZONE='Asia/Shanghai' SEATABLE_SERVER_HOSTNAME=XXX.XXX.XXX.XXX SEATABLE_SERVER_PROTOCOL=http SEATABLE_SERVER_LETSENCRYPT=False SEATABLE_SSL_PORT=443 SEATABLE_ADMIN_EMAIL=149662365@gmail.com SEATABLE_ADMIN_PASSWORD=abcd1234 上面参数备注:
SEATABLE_IMAG:镜像资源标志,将拉取最新的seatable社区版镜像
SEATABLE_VOLUMES:seatable数据文件映射到物理服务器的地址,改为你们自己需要的地址即可,也可沿用我自己的地址
SEATABLE_MYSQL_VOLUMES:同上,是seatable使用的MySQL地址
SEATABLE_MYSQL_ROOT_PASSWORD:数据库密码,用户名默认为root
SEATABLE_SERVER_HOSTNAME:seatable所在服务器的IP地址
SEATABLE_SSL_PORT:Https访问地址
SEATABLE_ADMIN_EMAIL:seatable网站的管理员用户账号
SEATABLE_ADMIN_PASSWORD:seatable网站的管理员用户密码
vim docker-compose.yml docker-compose.yml填充如下:
services: seatable-server: image: ${SEATABLE_IMAGE:-seatable/seatable-developer:latest} restart: unless-stopped container_name: seatable ports: - 80:80 - ${SEATABLE_SSL_PORT:-}:443 volumes: - "${SEATABLE_VOLUMES:-/opt/seatable/seatable-data}:/shared" environment: - DB_HOST=${SEATABLE_MYSQL_DB_HOST:-mariadb} - DB_ROOT_PASSWD=${SEATABLE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty} - SEATABLE_SERVER_HOSTNAME=${SEATABLE_SERVER_HOSTNAME:?Variable is not set or empty} - SEATABLE_SERVER_PROTOCOL=${SEATABLE_SERVER_PROTOCOL:-http} - SEATABLE_SERVER_LETSENCRYPT=${SEATABLE_SERVER_LETSENCRYPT:-False} - SEATABLE_ADMIN_EMAIL=${SEATABLE_ADMIN_EMAIL:-} - SEATABLE_ADMIN_PASSWORD=${SEATABLE_ADMIN_PASSWORD:-} - TIME_ZONE=${TIME_ZONE} depends_on: mariadb: condition: service_healthy memcached: condition: service_started redis: condition: service_started networks: - frontend-net - backend-seatable-net mariadb: image: ${SEATABLE_DB_IMAGE:-mariadb:10.11} restart: unless-stopped container_name: seatable-mariadb environment: - MYSQL_ROOT_PASSWORD=${SEATABLE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty} - MYSQL_LOG_CONSOLE=true - MARIADB_MYSQL_LOCALHOST_USER=1 - MARIADB_MYSQL_LOCALHOST_GRANTS=USAGE - MARIADB_AUTO_UPGRADE=1 volumes: - "${SEATABLE_MYSQL_VOLUMES:-/opt/seatable/mysql-data}:/var/lib/mysql" networks: - backend-seatable-net healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-p${SEATABLE_MYSQL_ROOT_PASSWORD}", "-h", "localhost"] interval: 5s timeout: 30s retries: 60 memcached: image: ${SEATABLE_MEMCACHED_IMAGE:-memcached:1.6.18} restart: unless-stopped container_name: seatable-memcached entrypoint: memcached -m 256 networks: - backend-seatable-net redis: image: ${SEATABLE_REDIS_IMAGE:-redis:5.0.7} restart: unless-stopped container_name: seatable-redis networks: - backend-seatable-net networks: frontend-net: name: frontend-net backend-seatable-net: name: backend-seatable-net 上述内容均无需修改,默认即可,将在本机服务器映射80端口进行访问网站,建议不要修改成其他端口,否则在后续使用过程中可能会出现seatable表格中的附件和图片无法显示的问题
Step 2:运行docker-compose文件
检查环境
万事具备只欠东风,我们已经准备好了所有环境,现在只需要进行执行docker-compose.yml文件即可成功访问网站,在执行docker-compose.yml之前,请再三进行环境检查:
确保服务器有网络链接,如果只有内网而无法访问外网,请在可访问外网的环境中,通过docker pull 命令依次拉取seatable、mariadb、redis、memcached的对应版本的镜像,再通过docker save -o命令导出镜像到本地,放到U盘中,再通过docker load < 命令导入到你想安装的服务器即可。
确保服务器IP获取正确,并与.env文件的SEATABLE_SERVER_HOSTNAME值保持一致
确保服务器的80端口无人占用
确保服务器的seatbale映射目录具备可读可写的权限
在docker-compose.yml同级目录下面,执行如下命令,创建并启动程序
docker-compose up -d 等待创建和启动成功
Step 3:验证是否安装成功
docker ps 
docker stop seatable seatable-mariadb seatable-memcached seatable-redis
docker rm seatable seatable-mariadb seatable-memcached seatable-redis
cp -r /root/seatable /root/seatable_bak_20240428
rm -rf /root/seatable/mysql-data /root/seatable/seatable-data
vim /root/seatable/.env
docker-compose up -d
docker stop seatable seatable-mariadb seatable-memcached seatable-redis
替换文件夹1:mysql-data
-位置:/root/seatable/mysql-data/
-删除:rm -rf /root/seatable/mysql-data/
-替换:cp -r /root/seatable_bak_20240428/mysql-data/ /root/seatable/
替换文件夹2:seafile-data
-位置:/root/seatable/seatable-data/seatable/seafile-data/
-删除:rm -rf /root/seatable/seatable-data/seatable/seafile-data/
-替换:cp -r /root/seatable_bak_20240428/seatable-data/seatable/seafile-data/ /root/seatable/seatable-data/seatable/
替换文件夹3:seahub-data
-位置:/root/seatable/seatable-data/seatable/seahub-data/
-删除:rm -rf /root/seatable/seatable-data/seatable/seahub-data/
-替换:cp -r /root/seatable_bak_20240428/seatable-data/seatable/seahub-data/ /root/seatable/seatable-data/seatable/
替换文件夹4:storage-data
-位置:/root/seatable/seatable-data/seatable/storage-data/
-删除:rm -rf /root/seatable/seatable-data/seatable/storage-data/
-替换:cp -r /root/seatable_bak_20240428/seatable-data/seatable/storage-data/ /root/seatable/seatable-data/seatable/
docker start seatable seatable-mariadb seatable-memcached seatable-redis
100%是成功的,如果没有成功请回头看哪一步骤没有正确进行