在 tox 中复制和安装包并像在 Dockerfile 中一样设置环境变量

Copy and install packages within tox and set environment variables like you would in a Dockerfile

在我的 Dockerfile 中我有这个:

ENV WORKDIR /home
ENV PYTHONPATH $WORKDIR
WORKDIR $WORKDIR

COPY resources/ $WORKDIR

# Install the JAVA
RUN tar -xvzf jdk-8u202-linux-x64.tar.gz -C /usr/
RUN rm jdk-8u202-linux-x64.tar.gz
ENV JAVA_HOME ../usr/jdk1.8.0_202
RUN export JAVA_HOME

我可以在 tox 中做同样的事情吗?我知道您可以通过在 tox.ini 中指定 运行 命令,如下所示:

[toxenv:test]
install_command = pip install {opts} {packages}
commands = 
    <command1>
    <command2>

但我只是不知道是否所有适用于 Dockerfile 的命令也适用于 tox。

所以我已经尝试过了,它奏效了。为了尝试实现以上内容,这是我在 tox.ini 文件中放入的内容:

[testenv]

setenv =
    LC_ALL = en_US.utf-8
    LANG = en_US.utf-8
    JAVA_HOME = {toxinidir}{/}jdk1.8.0_202
whitelist_externals =
    tar
commands =
    tar -xvzf resources/jdk-8u202-linux-x64.tar.gz

whitelist_externals 必须定义,如果你要有 tar, cp, echo, ls 等命令