指定用户运行容器

指定运行容器的用户

如果您需要以非root用户运行容器,则可以使用mtphotos/mt-photos:nodb-latest镜像;

因postgreSQL、Redis运行需要额外的权限,所以该镜像未集成数据库部分,需要单独安装PostgreSQLRedis,然后通过添加环境变量来连接外部数据库;

PostgreSQL版本建议选择14.2以上,Redis版本建议5.0以上;这样可以避免数据库版本不一致而导致的问题;

添加环境变量

创建容器时,添加以下环境变量:

PostgreSQL相关的环境变量:

POSTGRES_HOST=192.168.1.108
POSTGRES_PORT=5432
POSTGRES_DATABASE=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=xxx

Redis相关的环境变量:

REDIS_HOST=192.168.1.108
REDIS_PORT=6379
REDIS_PASSWORD=xxx

如果redis没有密码,REDIS_PASSWORD可以不加

命令如下:

docker run -d -u 1000:100 \
  --name="mt-photos" \
  -v /appdata/mt_photos/config:/config \
  -v /appdata/mt_photos/upload:/upload \
  -v /photos/folder1:/folder1 \
  -v /photos/folder2:/folder2 \
  -p 8063:8063 \
  -e TZ="Asia/Shanghai" \
  -e POSTGRES_HOST="192.168.1.108" \
  -e POSTGRES_PORT="5432" \
  -e POSTGRES_DATABASE="postgres" \
  -e POSTGRES_USER="postgres" \
  -e POSTGRES_PASSWORD="数据库用户密码" \
  -e REDIS_HOST="192.168.1.108" \
  -e REDIS_PORT="6379" \
  --restart="unless-stopped" \
  mtphotos/mt-photos:nodb-latest

注意: 在指定了用户id -u 1000:100的情况下,环境变量中不要添加PUID、PGID

提示:请勿将PostgreSQL、Redis的端口暴露在公网中!!!

yaml 模板

version: "3"

services:
  mtphotos:
    image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos:nodb-latest
    container_name: mtphotos
    user: "1000:100"  # 指定用户ID和组ID
    restart: always
    ports:
      - 8063:8063
    volumes:
      - /volume1/docker/mt_photos/config:/config
      - /volume1/photos/mt_photos_upload:/upload
      - /volume1/xxx/其他需要映射的目录:/photos #提示:这一行是其他需要映射给容器的文件夹,如果没有可以删除这一行
    environment:
      - TZ=Asia/Shanghai
      - LANG=C.UTF-8
      - POSTGRES_HOST=mtphotos_db
      - POSTGRES_DATABASE=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=my_db_pwd #注意修改数据库的密码
    dns:
      - 114.114.114.114
    depends_on:
      - mtphotos_ai
      - mtphotos_face_api
      - mtphotos_db
  mtphotos_db:
    image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-pg:latest
    user: "1000:100"  # 指定用户ID和组ID
    container_name: mtphotos_pg
    restart: always
    volumes:
      - /volume1/docker/mt_photos/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=my_db_pwd #注意修改数据库的密码
      - PGDATA=/var/lib/postgresql/data/pgdata
  mtphotos_ai:
    image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-ai:onnx-latest
    container_name: mtphotos_ai
    restart: always
    ports:
      - 8060:8060
    environment:
      - API_AUTH_KEY=mt_photos_ai_extra
  mtphotos_face_api:
    image: crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:latest
    container_name: mtphotos_face_api
    restart: always
    ports:
      - 8066:8066
    environment:
      - API_AUTH_KEY=mt_photos_ai_extra

环境变量的详细用法

Copyright © 2025 杭州相册家科技有限公司 All Rights Reserved

隐私协议软件许可及服务协议

浙公网安备 33019202000625号浙ICP备2022014580号