我正在使用docker compose设置一个VSCode dev-container。我还有一些文件myVersion.txt
,其中包含一个字符串。在构建容器时,我需要在DockerFile中使用此字符串,但字符串必须留在myVersion.txt
中,我更喜欢避免手动将其复制粘贴到另一个文件,如.env
或Dockerfile
。
有没有一种方法可以实现这一点?像ENV MY_VERSION=${cat local/file/myVersion.txt}
,这显然是行不通的devcontainer.json
:
{
"dockerComposeFile": "./docker-compose.yml",
"service": "game",
"workspaceFolder": "/home/node/game",
"remoteUser": "node",
}
字符串docker-compose.yml
:
version: "3.9"
services:
game:
build:
context: .
dockerfile: Dockerfile
volumes:
- ..:/home/node/game
ports:
- "3000:3000"
型Dockerfile
:
FROM node:20
WORKDIR /
ENV MY_VERSION=???
RUN some_command --argument $MY_VERSION
型
2条答案
按热度按时间c6ubokkw1#
没有测试过,但你可以这样做:
将文件挂载为docket-compose.yml中的卷:
字符串
然后在Dockerfile中,您可以
RUN some-command —version "$(cat /version.txt)"
nimxete22#
这就是我最终所做的:
将
docker-compose.yml
中的上下文更改为项目根目录(此处为..
,因为文件位于./.devcontainer/docker-compose.yml
中)字符串
然后在
Dockerfile
中可以使用COPY
:型