- v2版为官方维护,v1版为旧版的开源版。本文以v2为准。安装见Linux
- v1的语法基本类似,将
docker compose替换为docker-compose
配置文件
大部分内容和DockerFile相同,。以Dify的配置文件为例
services:
api:
image: langgenius/dify-api:1.6.0
restart: always
privileged: true
environment:
MODE: api
SENTRY_DSN: ${API_SENTRY_DSN:-}
……
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
volumes:
- ./volumes/app/storage:/app/api/storage
networks:
- ssrf_proxy_network
- default
db:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-difyai123456}
command: >
postgres -c 'max_connections=${POSTGRES_MAX_CONNECTIONS:-100}'
-c 'shared_buffers=${POSTGRES_SHARED_BUFFERS:-128MB}'
-c 'work_mem=${POSTGRES_WORK_MEM:-4MB}'
-c 'maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-64MB}'
-c 'effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-4096MB}'
volumes:
- ./volumes/db/data:/var/lib/postgresql/data
healthcheck:
test: [ 'CMD', 'pg_isready', '-h', 'db', '-U', '${PGUSER:-postgres}', '-d', '${POSTGRES_DB:-dify}' ]
interval: 1s
timeout: 3s
retries: 60
……基本操作
进入存在docker-compose.yaml的目录下:
启动
docker-compose up -d启动,不加-d可查看所有容器的启动时输出内容
有的版本的compose启动时,会给默认名字docker_服务_序号,这种情况下启动多个项目很有可能会导致容器互相冲突,建议自行命名不同的container,加-p参数:docker compose -p project_name up -d
暂停
docker compose stop
构建镜像
根据compose文件批量的构建镜像:docker compose build