You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现服务器重启后自动执行sudo docker-compose up -d启动PhotoPrism?

实现PhotoPrism开机自动启动的方法

针对服务器重启后需手动启动PhotoPrism的问题,有两种简单可靠的自动化方案,适合新手操作:

方案一:通过Docker Compose重启策略实现(推荐)

这种方法直接在配置文件中添加规则,让Docker自动管理服务的开机启动:

  1. 打开PhotoPrism对应的docker-compose.yml文件(用nano或vim等文本编辑器即可)
  2. 在services下的photoprism服务配置块中,添加一行restart: unless-stopped,示例如下:
services:
  photoprism:
    image: photoprism/photoprism:latest
    # 保留你已有的其他配置(比如端口映射、卷挂载等)
    restart: unless-stopped
  • unless-stopped的含义是:除非你手动执行docker-compose stop停止服务,否则服务器或Docker服务重启时,都会自动拉起PhotoPrism
  • 若希望无论任何情况(包括手动停止后)都自动启动,可换成restart: always
  1. 保存文件后,执行以下命令让配置生效:
sudo docker-compose up -d

之后服务器重启时,Docker会自动启动PhotoPrism服务。

方案二:通过Systemd服务管理(适合精细控制场景)

如果需要等其他依赖服务(比如网络存储)启动后再启动PhotoPrism,可创建Systemd服务来管理:

  1. 创建Systemd服务文件:
sudo nano /etc/systemd/system/photoprism.service
  1. 粘贴以下内容,注意把/path/to/your/photoprism替换为你存放docker-compose.yml的实际目录路径:
[Unit]
Description=PhotoPrism Docker Compose Service
Requires=docker.service
After=docker.service network.target

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/path/to/your/photoprism
ExecStart=/usr/bin/docker-compose up -d
ExecStop=/usr/bin/docker-compose down
ExecReload=/usr/bin/docker-compose up -d

[Install]
WantedBy=multi-user.target
  1. 重新加载Systemd配置:
sudo systemctl daemon-reload
  1. 启用开机自启:
sudo systemctl enable photoprism.service
  1. 可立即启动服务测试:
sudo systemctl start photoprism.service

额外注意事项

  • 确保Docker服务本身是开机自启的,可执行sudo systemctl enable docker.service确认
  • 两种方案二选一即可,不要同时配置,避免冲突

内容的提问来源于stack exchange,提问作者rubytester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 01:20:12