使用docker简单地进行开发
项目描述
docky是一个用于设置和运行多个Odoo项目的开发工具。
历史和动机
该项目最初是为了构建基于docker-compose和docker的Odoo环境而创建的,无需费力。
主要功能
通过几个快捷方式简化docker-compose CLI。
要求
docker-ce : https://docs.docker.net.cn/install/ (或podman)
安装
Docky可以从PyPI获取
pip install docky
# or with pipx : pipx install docky --include-deps
更新Docky
pip install docky --upgrade
# or with pipx : pipx upgrade docky --include-deps
用法: labels
标签 docky.main.service 和 docky.user
docky.main.service: odoo
docky.user: odoo
允许您定义docker-compose.yml文件中的主要服务,并在运行例如‘docky run’时指定容器的命令行用户。
用法: recommendations
使用 ak 构建您的项目。
当同时进行多个项目开发时,管理容器不同的端口会变得很乱。我们推荐使用Traefik。以下是一个用于本地开发的示例docker-compose.yml文件
version: "3.7"
services:
traefik:
image: "traefik:v2.1"
restart: always
container_name: "traefik"
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
ports:
- "127.0.0.1:80:80"
- "127.0.0.1:8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- traefik
networks:
traefik:
name: traefik
有关此存储库中Traefik配置的更多信息: https://github.com/akretion/traefik-template
故障排除
为了避免使用“docky open”时出现换行问题,请使用版本为docker > 18.06.0-ce的版本,请参阅: https://github.com/docker/compose/issues/6151
变更日志
版本 8.0.0 - 移除 docky init
版本 7.0.7 - 更新copier依赖 - 适配readme
版本 7.0.6 - 更新copier依赖到6.0.0a9 - 删除死代码(旧模板)
版本 7.0.5 - 修复 requirements.txt
版本 7.0.4 - 使用 copier 管理模板 - 移除对 Python 3.5 的支持
版本 7.0.0
移除 $HOME 中的 docky 配置文件的需求
使用 .env 以更好地与 docker-compose 兼容
改进模板
创建 init 命令
重大重构
版本 6.0.0
重构移除代理代码并使用 traefik
现在必须使用标签在服务上,移除 docky.yml (见文档)
在 docky run 和 docky open 中添加选项“–service=myservice”
版本 5.0.0
通过移除使用挂载版本 etc/hosts 的代理代码来解决 macOS 兼容性问题,现在您需要安装 dnsmasq。这也应该通过使用本地 dns 解决 Windows 兼容性问题 https://stackoverflow.com/questions/138162/wildcards-in-a-windows-hosts-file?answertab=votes#tab-top
解决多用户环境中项目名称的问题(名称基于用户 + 目录名称)
添加指定运行、打开、日志、停止、下线、重启、启动命令的服务选项,例如现在您可以使用“docky open db”打开 db 服务器的终端,或者您可以重启服务,例如“docky restart varnish”
解决别名名称缺失的问题
解决 docky open 时缺失环境变量的问题(现在我们使用 monkey-patched 版本的 docker-compose exec)
修复文档构建
改进 docky 针对未指定项目的特定命令,以便在没有项目的情况下运行。例如,您可以在目录项目外使用 docky help、docky proxy
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。