Node.js和Python项目开发工具
项目描述
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
-
如果您尚未安装,请先安装
pipx
- 在 macOS 上:
brew install pipx
- 在 Linux 上:从 pipx 文档 按照您的发行版说明进行安装
- 在 macOS 上:
-
确保
pipx
已添加到您的 PATH
pipx ensurepath
- 使用
pipx
安装dotrun
pipx install dotrun
如果您遇到问题,请打开 GitHub 上的一个问题。
macOS 性能
为了在 Docker 上获得最佳性能,我们建议启用一个新的实验性文件共享实现,称为 virtiofs。virtiofs 只适用于以下 macOS 版本的用户
- macOS 12.2 及以上(适用于 Apple Silicon)
- macOS 12.3 及以上(适用于 Intel)
在新的项目中添加 dotrun
要完全支持新项目中的 dotrun,您应该执行以下操作
- 对于 Python 项目,确保在
requirements.txt
中 Talisker 的版本为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 查看哈希值)
关闭
dotrun-2.4.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c76b5429f56b2ddbd693d89775d0dfdf27b934a684a2f8c4f496064694c5c47f |
|
MD5 | 96b8afa6080e6f766a3692315a51973a |
|
BLAKE2b-256 | c772cbec862584c9641123bb9089349fcb696321104ee71414f2e3ee18dcacf0 |
关闭
dotrun-2.4.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 67156ab8bd3c2aa76841d0ea73f754d0dec56e1c0ef0289220191b38fe2fcf22 |
|
MD5 | 2a8a8395bfe1bebc2bb737d305c79100 |
|
BLAKE2b-256 | 3983f041ee99d3affeac3116b6baa82ae686b9c5766623369d40948844473681 |