【发布时间】:2020-12-30 18:41:48
【问题描述】:
我正在使用 Docker 容器进行本地 Web 开发。我有一个 bash 脚本,用于运行 Django 的 manage.py test、flake8 和 coverage html,所有这些都在 Docker 容器内的 pipenv 环境中。
一个简单的版本是:
#!/bin/bash
set -e
docker exec hines_web /bin/sh -c "pipenv run coverage run --source=. manage.py test ; pipenv run flake8 ; pipenv run coverage html"
这行得通。但是,因为每个命令都必须单独使用pipenv run,所以它比它需要的要慢。
有没有办法在单个pipenv run 之后将多个命令链接在一起,或者将多个命令发送到pipenv shell 以供它们运行?
(任何关于改进一般方法的想法表示赞赏!)
【问题讨论】:
-
您应该可以使用
pipenv来设置基于非Docker 主机的虚拟环境。这通常会更快,并且不需要管理员等效权限即可使用。 -
我不是 100% 确定你的意思。你的意思是直接在我的 Mac 上而不是在 Docker 容器中运行 pipenv 吗?这就是我之前一直在做的事情,现在我正在尝试使用 Docker,以便我拥有一个更容易复制的环境,除了 pipenv 方面。
-
你需要在 docker 容器中使用 pipenv 吗?你可以直接将包安装到docker容器
pipenv install --deploy --system然后正常运行python3 filename.py -
@Ishan 这很好,我一开始就是这样,但我读到不再推荐在 Docker 映像中使用
--system:stackoverflow.com/questions/46503947/…