Coder是一个强大的开发环境管理平台,它允许开发者通过浏览器访问远程的开发环境。无论是个人开发者还是团队,Coder都能提供一致、可复制的开发环境,极大地简化了开发环境的配置和管理工作。
Docker Compose提供了一种简单的方式来定义和运行多容器的Docker应用程序。通过一个YAML文件,我们可以轻松配置Coder及其依赖的所有服务(如PostgreSQL数据库),并确保它们以正确的方式协同工作。
在开始之前,请确保您的系统已安装:
将以下内容保存为docker-compose.yaml文件:
version: "3.9"
services:
coder:
image: ghcr.io/coder/coder:${CODER_VERSION:-latest}
ports:
- "7080:7080"
environment:
CODER_PG_CONNECTION_URL: "postgresql://${POSTGRES_USER:-username}:${POSTGRES_PASSWORD:-password}@database/${POSTGRES_DB:-coder}?sslmode=disable"
CODER_HTTP_ADDRESS: "0.0.0.0:7080"
CODER_ACCESS_URL: "${CODER_ACCESS_URL}"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- coder_home:/home/coder
depends_on:
database:
condition: service_healthy
database:
image: "postgres:16"
ports:
- "5432:5432"
environment:
POSTGRES_USER: ${POSTGRES_USER:-username}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
POSTGRES_DB: ${POSTGRES_DB:-coder}
volumes:
- coder_data:/var/lib/postgresql/data
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U ${POSTGRES_USER:-username} -d ${POSTGRES_DB:-coder}",
]
interval: 5s
timeout: 5s
retries: 5
volumes:
coder_data:
coder_home:
在同一目录下创建.env文件,用于配置环境变量:
# Coder版本,默认为latest
CODER_VERSION=latest
# PostgreSQL配置
POSTGRES_USER=coder
POSTGRES_PASSWORD=your_secure_password
POSTGRES_DB=coder
# Coder访问URL,必须设置为外部可访问的地址
CODER_ACCESS_URL=http://your-domain.com:7080
运行以下命令启动所有服务:
docker-compose up -d
服务启动后,您可以通过浏览器访问:
http://localhost:7080
数据库配置:
coder_data卷中Coder配置:
coder_home卷持久化Coder配置环境变量:
CODER_ACCESS_URL必须设置为外部可访问的地址,不能是localhost或127.0.0.1如果遇到Docker权限问题,可以修改docker-compose.yaml文件,取消注释group_add部分,并设置正确的Docker组ID:
group_add:
- "998" # 替换为您的Docker组ID
获取Docker组ID的命令:
getent group docker | cut -d: -f3
如果需要重置Coder配置,可以删除相关卷:
docker volume rm coder_coder_home
docker volume rm coder_coder_data
确保CODER_ACCESS_URL设置正确,且该URL可以从外部访问。如果是本地测试,可以使用Coder的内置隧道功能。
coder_data通过Docker Compose部署Coder是一种简单高效的方式,特别适合开发测试环境。本文提供的配置包含了Coder运行所需的所有组件,并考虑了数据持久化和健康检查等生产环境需求。根据您的实际需求,可以进一步调整配置参数。
希望这篇指南能帮助您快速搭建Coder开发环境管理平台!