跳转到主要内容

Node.js和Python项目开发工具

项目描述

dotrun

Node.js和Python项目开发工具

dotrun 利用 Docker镜像 为运行Node和Python项目提供一个可预测的沙盒环境。

功能

  • 使用标准的 package.json 脚本入口点
    • dotrun 在Docker容器内运行 yarn run start
    • dotrun foo 在Docker容器内运行 yarn run foo
  • 检测 package.json 中的更改,并在需要时仅运行 yarn install
  • 检测 requirements.txt 中的更改,并在需要时仅运行 pip3 install
  • 使用 .env.env.local 文件中的环境变量运行脚本
  • 将Python依赖项保存在项目文件夹中的 .venv 中,以便于访问

用法

$ dotrun          # Install dependencies and run the `start` script from package.json
$ dotrun serve    # Run the python app only
$ dotrun clean    # Delete `node_modules`, `.venv`, `.dotrun.json`, and run `yarn run clean`
$ dotrun install  # Force install node and python dependencies
$ dotrun exec     # Start a shell inside the dotrun environment
$ dotrun exec {command}          # Run {command} inside the dotrun environment
$ dotrun {script-name}           # Install dependencies and run `yarn run {script-name}`
$ dotrun -s {script}             # Run {script} but skip installing dependencies
$ dotrun --env FOO=bar {script}  # Run {script} with FOO environment variable
$ dotrun -m "/path/to/mount":"localname"       # Mount additional directory and run `dotrun`
$ dotrun serve -m "/path/to/mount":"localname" # Mount additional directory and run `dotrun serve`
$ dotrun refresh image # Download the latest version of dotrun-image
$ dotrun --release {release-version} # Use a specific image tag for dotrun. Useful for switching versions
$ dotrun --image {image-name} # Use a specific image for dotrun. Useful for running dotrun off local images
  • 请注意,--image--release 参数不能同时使用,因为 --image 将覆盖 --release

安装

要求

  • Docker (获取Docker):在Linux上,您可以选择安装 Docker snap
  • Python 3.10或更高版本
  • 在MacOS上:需要 Homebrew
  • curl 命令行工具(通常预安装在MacOS和大多数Linux发行版中)

Linux和MacOS

快速安装

要安装dotrun,只需运行

curl -sSL https://raw.githubusercontent.com/canonical/dotrun/main/scripts/install.sh | bash

验证安装

安装后,您可以通过运行以下命令来验证dotrun是否正确安装:

dotrun version

手动安装

如果您想手动安装或遇到安装脚本的任何问题,可以使用以下步骤安装 dotrun

  1. 如果您尚未安装,请先安装 pipx

    • 在 macOS 上:brew install pipx
    • 在 Linux 上:从 pipx 文档 按照您的发行版说明进行安装
  2. 确保 pipx 已添加到您的 PATH

pipx ensurepath
  1. 使用 pipx 安装 dotrun
pipx install dotrun

如果您遇到问题,请打开 GitHub 上的一个问题。

macOS 性能

为了在 Docker 上获得最佳性能,我们建议启用一个新的实验性文件共享实现,称为 virtiofs。virtiofs 只适用于以下 macOS 版本的用户

  • macOS 12.2 及以上(适用于 Apple Silicon)
  • macOS 12.3 及以上(适用于 Intel)

如何启用 virtiofs

在新的项目中添加 dotrun

要完全支持新项目中的 dotrun,您应该执行以下操作

  • 对于 Python 项目,确保在 requirements.txtTalisker 的版本为 0.16.0 或更高
  • .dotrun.json.venv 添加到 .gitignore
  • package.json 中创建一个 start 脚本来执行所有设置本地开发的必要步骤。例如:"start": "concurrently --raw 'yarn run watch' 'yarn run serve'"
    • 上述命令使用了 concurrently - 您可能需要考虑这一点
  • 较旧的 Gunicorn 版本 与严格的限制不兼容,因此我们需要 Gunicorn >= 20
    • 更新已 集成到 Talisker 中,但截至撰写本文时尚未发布到新版本
    • 如果没有 Talisker 的新版本,只需将 gunicorn==20.0.4 添加到 requirements.txt 的底部即可

但是,一旦您准备好完全切换到 dotrun,只需删除 run 脚本即可。

自动测试拉取请求

"PR" 操作 构建 Python 包并使用 dotrun 运行项目。这将对每个拉取请求运行。

发布

对主分支所做的所有更改将自动作为新版本发布到 PyPI。

要手动发布新版本,请运行

docker buildx create --name mybuilder
docker buildx use mybuilder
docker buildx build --push --platform linux/arm/v7,linux/arm64/v8,linux/amd64 --tag canonicalwebteam/dotrun-image:latest .

黑客

您可以使用 pip 或 poetry 在本地安装该软件包。

使用 pip

pip3 install . requests==2.31.0

使用 Poetry

pip install poetry
poetry install --no-interaction

要使用除本地镜像以外的其他基础镜像运行 dotrun,可以使用 --image 标志。

dotrun --image "localimage" exec echo hello

要使用除 :latest 发布以外的其他发布版本运行 dotrun,可以使用 --release 标志。

dotrun --release "latest" serve

注意,在更改基础镜像之前,您应该运行

dotrun clean

以删除旧的虚拟环境。

项目详细信息


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源分布

dotrun-2.4.1.tar.gz (6.1 kB 查看哈希值)

上传于 源代码

构建版本

dotrun-2.4.1-py3-none-any.whl (6.8 kB 查看哈希值)

上传于 Python 3

支持者