本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

可用于开发和生产GeoDjango项目或其他科学/地理空间服务。
包含一系列工具 - 其中最重要的版本变化是GDAL和Python。
但这些工具和配置相比底层栈可能变化较快,因此我们使用发布名称结合GDAL和Python的关键版本来形成镜像标签。
标签格式如下:
windpioneers/gdal-python:<release-name>-gdal-<gdal-version>-python-<python-version>-<build-mode>
示例:
windpioneers/gdal-python:button-gdal-2.4.1-python-3.9-devwindpioneers/gdal-python:monster-gdal-2.4.1-python-3.8-slim需查看该仓库的发布说明以了解不同命名发布版本中包含的内容。
标签后缀为-dev的镜像基于Microsoft devcontainers,具有普遍实用性,尤其适合作为.devcontainer的基础镜像及VSCode中的远程代码协作。
这些镜像包含额外的开发功能,包括:
zsh终端(带oh-my-zsh),可将git和SSH映射到本地机器(容器内可无缝使用git命令和快捷方式)prettier),支持VSCode中的保存时格式化功能标签后缀为-slim的镜像基于Python的buster-slim镜像,提供最小化的操作系统依赖安装,适用于快速、低内存的容器编排及无服务器环境中的低内存使用场景。
当然,这些镜像不包含任何开发工具,但已安装poetry用于应用依赖管理。
如果因某些原因需要在生产环境中使用开发依赖,-dev镜像不会引入安全问题,但会延长构建过程并增加日常运行成本。
地理工具栈包含:
按照VSCode的.devcontainer使用说明操作(网上有大量教程)。建议将开发容器基于-dev镜像构建。
.devcontainer/Dockerfile应如下所示:
FROM windpioneers/gdal-python:gdal-2.4.1-python-3.9-dev # 指定zsh历史文件存储位置 # 我们将决定权交给您,但如果将其放在映射到容器的文件夹中,历史记录将在容器重建后保留 :) # # !!!重要!!! # 确保.zsh_history文件不会提交到仓库,因为它可能包含敏感信息。因此,应将 # .devcontainer/.zsh_history # 添加到.gitignore文件中。 # ENV HISTFILE="$PWD/.devcontainer/.zsh_history" # 安装并缓存poetry依赖 # 为什么不在gdal-python镜像中预配置此步骤? # 因为我们无法为dev/slim镜像条件性地挂载缓存。 # 此外,如果您不使用poetry,强制缓存也没有意义。 # COPY pyproject.toml poetry.lock ./ RUN --mount=type=cache,id=dev-cache,target=/root/.cache \ poetry config virtualenvs.create false && \ poetry install $(test "$INSTALL_DEV_TOOLS" != true && echo "--no-dev") --no-interaction --no-ansi # 确保打印语句和日志消息即时显示 ENV PYTHONUNBUFFERED TRUE
以下是推荐的.devcontainer/devcontainer.json配置(可根据需求调整):
// 有关格式详细信息,请参见[***] // [***] { "name": "GeoPython", "build": { "dockerfile": "Dockerfile", "context": "..", }, // 在容器创建时设置默认的容器特定settings.json值 "settings": { "austin.mode": "Wall time", "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "jupyter.widgetScriptSources": ["jsdelivr.com", "unpkg.com"], "prettier.prettierPath": "/usr/local/prettier", // 注意:Prettier(及运行所需的Node.js)已预安装,并在此处链接 "python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8", "python.formatting.blackPath": "/usr/local/py-utils/bin/black", "python.formatting.provider": "black", "python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf", "python.languageServer": "Pylance", "python.linting.banditPath": "/usr/local/py-utils/bin/bandit", "python.linting.enabled": true, "python.linting.flake8Path": "/usr/local/py-utils/bin/flake8", "python.linting.mypyPath": "/usr/local/py-utils/bin/mypy", "python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle", "python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle", // 行长度与black设置匹配 // 禁用特定消息: // - 查看详情:/usr/local/py-utils/bin/pylint --list-msgs // - 禁用missing-module-docstring (C0114),因为我们通常不记录模块,只记录其成员 // - 禁用invalid-name (C0103),因为pylint认为如'x'、'df'、'np'等短名称无效 "python.linting.pylintArgs": [ "--max-line-length=120", "--disable=missing-module-docstring,invalid-name" ], "python.linting.pylintEnabled": true, "python.linting.pylintPath": "/usr/local/py-utils/bin/pylint", "python.pythonPath": "/usr/local/bin/python", "terminal.integrated.defaultProfile.linux": "zsh" }, // 添加容器创建时要安装的扩展ID列表 "extensions": [ "esbenp.prettier-vscode", "irongeek.vscode-env", "mikestead.dotenv", "ms-python.python", "ms-python.vscode-pylance", "ms-toolsai.jupyter", "ms-toolsai.jupyter-renderers", "ms-toolsai.jupyter-keymap", "ms-vsliveshare.vsliveshare", "p403n1x87.austin-vscode", // 用于性能分析 "ritwickdey.liveserver" // 用于预览HTML文档,如Sphinx生成的文档 ], // 使用'forwardPorts'将容器内的端口列表暴露到本地 "forwardPorts": [80, 443, 7045, 7046, 7047, 7048, 7049, 8080], // 使用'postCreateCommand'在容器创建后运行命令 "postCreateCommand": "echo \"在此处安装依赖\"", // 注释此行可改为以root用户连接 - 但部分开发工具可能无法工作!更多信息:[***] "remoteUser": "vscode", // 允许基于ptrace的调试器(如austin)在容器中工作 // 不要将这些运行参数添加到任何暴露给外部用户或互联网的容器中 "runArgs": ["--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"] }
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429