dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.1.2-tf2.14.0-1.13.1
COPY ./serving /usr/local/serving/serving
COPY ./models /usr/local/serving/models
WORKDIR /usr/local/serving/serving
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ \
&& pip install 'ms-swift[all]' -U --no-cache-dir
ENV WEBUI_SERVER='0.0.0.0'
CMD python ./swift/cli/web_ui.py
Dockerfile 中设置环境变量
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ed5dfc52edf44c0681cb07cdae28484c.png)
在 Dockerfile 中设置环境变量通常是为了让容器内的应用程序能够访问这些变量,以便配置应用的运行环境。在 Dockerfile 中,你可以使用 `ENV` 指令来设置环境变量。
下面是一个简单的例子,展示了如何在 Dockerfile 中设置环境变量:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y software-properties-common
ENV MY_ENV_VAR="Hello, World!"
CMD ["echo", "$MY_ENV_VAR"]
在这个例子中,我们使用 `ENV` 指令设置了环境变量 `MY_ENV_VAR`,并将其值设置为 "Hello, World!"。在后续的命令中,我们使用 `$MY_ENV_VAR` 来引用这个环境变量。
当你构建这个 Dockerfile 并运行容器时,`MY_ENV_VAR` 会被设置为 "Hello, World!",并且你可以通过命令行参数传递新的值来覆盖它。
例如,如果你在运行容器时使用 `--env MY_ENV_VAR="New Value"`,那么在容器内部,`MY_ENV_VAR` 的值将被设置为 "New Value"。
环境变量or/赋值语句
lang = os.environ.get('SWIFT_UI_LANG') or arguments.lang
这行代码从环境变量中获取 SWIFT_UI_LANG 的值,如果该环境变量存在,则将其赋值给变量 lang;如果环境变量不存在,则使用 arguments.lang 的值。
在Python中,`Optional[str] = None` 是一个赋值语句,用于将一个值(在这个例子中是 `None`)赋给一个变量,该变量被声明为 `Optional[str]` 类型。
这里的每个部分可以这样理解:
- `Optional[str]`:这是一个类型注解,它表示变量 `model_type` 可以是一个字符串(`str`),也可以是一个 `None` 值。`Optional` 是一个泛型类型,它可以与任何其他类型结合使用,如 `Optional[int]` 表示可以是一个整数也可以是一个 `None`。
- `model_type`:这是一个变量名,用来存储某个值。
- `=`:这是一个赋值运算符,用来将右侧的值赋给左侧的变量。在这个例子中,`model_type` 被赋值为 `None`。
所以,`Optional[str] = None` 的意思是,变量 `model_type` 被声明为一个可以存储字符串或 `None` 的变量,并且它的当前值被设置为 `None`。