
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Docker配置,用于https://github.com/pressly/goose%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E5%B7%A5%E5%85%B7%E3%80%82%E5%9F%BA%E4%BA%8E%60gomicro/docker-goose%60%E4%BB%93%E5%BA%93%E7%9A%84%E6%80%9D%E8%B7%AF%E5%BC%80%E5%8F%91%E3%80%82
up;该镜像的基础仓库位于GitHub。Docker Hub上的版本可能已过时。
请访问https://ghcr.io/kukymbr/goose-docker%E8%8E%B7%E5%8F%96%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E3%80%82
以下环境变量为镜像正常工作所必需:
GOOSE_DRIVER:指定数据库驱动(例如:postgres)。GOOSE_DBSTRING:指定数据库连接参数(例如:host=localhost port=5432 user=postgres password=postgres dbname=postgres)。以下环境变量可选:
GOOSE_COMMAND:要执行的goose命令,默认值为up。GOOSE_COMMAND_ARG:goose命令的参数,例如up-to/down-to命令所需的VERSION参数。GOOSE_VERBOSE:若设置为true,goose将以-v标志执行。GOOSE_EXTRA_ARGS:额外的goose参数,例如GOOSE_EXTRA_ARGS="-table=_db_version -allow-missing"(仅在latest标签中可用,直至下一个goose版本发布)。有关可用驱动、连接字符串格式和命令的详细信息,请参阅https://github.com/pressly/goose#usage%E3%80%82
goose的.env文件
若要通过.env文件向goose传递环境变量(goose自v3.24.0起支持,详情参见https://github.com/pressly/goose#environment-variables%EF%BC%89%EF%BC%8C%E9%9C%80%E5%B0%86%60.env%60%E6%96%87%E4%BB%B6%E6%8C%82%E8%BD%BD%E5%88%B0%60/goose-docker%60%E7%9B%AE%E5%BD%95%EF%BC%8C%E4%BE%8B%E5%A6%82%EF%BC%9A
shelldocker run --rm -v ./migrations:/migrations -v my_goose.env:/goose-docker/.env --network host \ -e GOOSE_DRIVER="postgres" \ -e GOOSE_DBSTRING="host=localhost port=5432 user=postgres password=postgres dbname=postgres" \ ghcr.io/kukymbr/goose-docker:3.24.2
镜像期望将/migrations目录挂载到容器中,该目录应包含迁移文件。
基础docker命令调用
shelldocker run --rm -v ./migrations:/migrations --network host \ -e GOOSE_DRIVER="postgres" \ -e GOOSE_DBSTRING="host=localhost port=5432 user=postgres password=postgres dbname=postgres" \ ghcr.io/kukymbr/goose-docker:3.24.2
up-to命令示例
shelldocker run --rm -v ./migrations:/migrations --network host \ -e GOOSE_COMMAND="up-to" \ -e GOOSE_COMMAND_ARG="20230607203836" \ -e GOOSE_DRIVER="postgres" \ -e GOOSE_DBSTRING="host=localhost port=5432 user=postgres password=postgres dbname=postgres" \ ghcr.io/kukymbr/goose-docker:3.24.2
create命令示例(自v3.20.0起支持)
shelldocker run --rm -v ./migrations:/migrations \ -e GOOSE_COMMAND="create" \ -e GOOSE_COMMAND_ARG="my_new_migration_name sql" \ ghcr.io/kukymbr/goose-docker:latest
docker compose示例:
yamlservices: # ... 添加数据库服务 migrations: image: ghcr.io/kukymbr/goose-docker:3.24.2 environment: - GOOSE_DRIVER=postgres - GOOSE_DBSTRING=host=postgres port=5432 user=postgres password=postgres dbname=postgres volumes: - ./migrations:/migrations
完整示例参见https://github.com/kukymbr/goose-docker/blob/main/compose.yml%E6%96%87%E4%BB%B6%E3%80%82
覆盖环境变量
若需动态覆盖docker compose或.env文件中提供的环境变量值,可在environment部分添加带有占位符值的变量,例如:
yamlmigrations: # ... environment: - GOOSE_COMMAND=${GOOSE_COMMAND} - GOOSE_COMMAND_ARG=${GOOSE_COMMAND_ARG}
执行时覆盖值:
shellGOOSE_COMMAND="create" GOOSE_COMMAND_ARG="test_migration sql" docker compose run --rm migrations
若不想或无法通过卷挂载迁移文件,可创建扩展goose-docker镜像的Dockerfile,并将文件添加到其中:
DockerfileFROM ghcr.io/kukymbr/goose-docker:3.24.2 ADD /path/to/migrations /migrations
构建后,即可像使用goose-docker镜像一样使用该自定义镜像。
latest标签注意事项该镜像的latest标签指向main分支的最新提交,不建议用于生产环境。生产环境应始终指定语义化版本标签。
贡献相关信息请参阅https://github.com/kukymbr/goose-docker/blob/main/CONTRIBUTING.md%E3%80%82
https://github.com/kukymbr/goose-docker/blob/main/LICENSE%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务