问题标签 [workdir]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - docker:Dockerfile 中的默认 WORKDIR 是什么?
我们可以WORKDIR
在 中设置一个目录为工作目录Dockerfile
,但是如果我们不设置,默认值是多少呢?
docker - Docker - 高山映像上的 WORKDIR 问题(多阶段构建)
我的 Dockerfile 有第二阶段:
如您所见,WORKDIR 设置为 /service
但是,如果您使用第一个入口点运行映像,您会得到:
/bin/sh: /main: not found
如果你使用第二个入口点运行,你会得到:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"/main\": stat /main: no such file or directory": unknown.
注意:另一个有趣的点是COPY --from=builder ...我需要在其中设置 dest/service/
否则我的文件会被复制到/
目录中
根据文档:
WORKDIR 指令为 Dockerfile 中任何 RUN、CMD、ENTRYPOINT、COPY 和 ADD 指令设置工作目录。
任何想法?它真的与我或 Docker/alpine 有关吗?
docker - makefile 无法使用 -w -v -u 选项运行 docker 映像
我有工作的 docker 镜像,我可以通过命令在本地运行
docker run --rm -u $(id -u) -v${PWD}:${PWD} -w${PWD} protocbuilder:1.0 [other unimportant args]
一切正常。我想使用 makefile 使用该容器自动执行操作,所以我创建了 make 命令:
但是当我打电话时,make test
我得到以下输出:
我不是很喜欢makefile的东西,所以我不明白为什么makefiledocker run
在控制台的标准调用中会失败,一切正常。-u
使用,-v
和-w
参数将用户映射到容器似乎存在问题。我应该在 makefile 中执行一些额外的步骤以使其正常工作吗?或者,也许我需要docker run
在 makefile 中更改命令中的某些内容?
提前致谢
docker - 如何使用父文件夹作为 workdir 构建 docker 映像?
这可能是一个愚蠢的问题,但我是 Docker 的新手,我对此感到很困惑。我有一个包含许多子文件夹的项目,如下例所示:
然后,我想这样做:
project-folder
为所有容器维护我的工作目录;- 在每个容器内,我应该能够访问
folder_data
- 我知道我必须指定一个卷,我只是不知道如何做到这一点而不保留我project-folder
的工作目录; - 我需要将我的 workdir (
project-folder
) 传递给我的 code1.py
注意:只有当我在每个子文件夹中创建它时,我的图像才成功创建,例如这个 Dockerfile:
图像创建命令:
我目前正在上下文中创建图像folder_1
,因为我无法在上下文中正确创建图像project-folder
git - Git pull 不起作用并显示本地文件已修改且未修改
我正在尝试从目录外部执行 git pull,并且正在运行以下命令:
输出是“Alrady Up To Date”,或者它只是“拉”修改,但文件不是远程文件,即使 git pull 输出显示它应该是,并且 git status 显示文件是“修改”,好像他在 git pull 之后保留了本地版本并告诉我我修改了它。
我该如何解决这个问题?我已经了解了 --work-tree 选项,但我不知道它是否会以某种方式产生影响。
rust - Rust:有没有一种简单的方法来 tar 一个不包括一些子目录和文件的目录?
我正在开发一个 rust 的小型 cli,我想从一个目录创建一个 tgz 文件。不过,我想从中排除一些文件和目录。例如,我想从任何目录中排除任何 .custom 文件。
我最终使用了 tar 和 workdir crate,但不知何故,我最终得到的代码似乎非常复杂……此外,似乎 tar crate 不支持像 cli 那样排除文件或目录。
所以我所做的是使用 workdir 遍历目录中的所有文件,过滤我想要排除的文件并在存档中一个一个添加文件。
有没有一种神奇的方法可以简单地做到这一点?
非常感谢 !
docker - 使用模式设置 WORKDIR
有没有办法将 WORKDIR 更改为第一个模式匹配的文件夹?就像是
与我的本地终端行为不同,文件变量保持为空,尽管当前的 WORKDIR 是正确的,并且该文件夹基于 docker 构建日志肯定存在。
编辑:为了澄清,用例是:
有一个 Go 包 (lilliput) 附带预构建的二进制文件,但这些二进制文件在我们的 docker 想象将运行的平台上不起作用。值得庆幸的是,这个包build_deps.sh
为这种情况提供了一个,但这必须从包安装文件夹中执行。这个文件夹将根据包的发布版本有一个任意的名称(例如lilliput@v0.0.0-20210720001558-e1547514bd5f
)目标是模式匹配这个文件夹lilliput*
,切换 WORKDIR 并在那里开始依赖构建。
image - WORKDIR 是否创建目录?
这些是 Dockerfile 的前 2 行:
以下是一些我不明白的事情: 从 docker 的文档中,我知道第二行将工作目录设置为 /code。这个过程发生在哪里?当 docker 在创建映像时运行 Dockerfile 的第二行时会发生这种情况吗?如果 /code 不存在,它是由 docker 创建的吗?/code 将在哪里创建?在图像的根目录中?
logging - snakemake:从 log_handler 脚本内部访问 workdir
我正在尝试创建一个自定义log_handler
脚本,可以将工作流的日志保存为 JSON 文件{workdir}/logs
。为此,我需要知道当前是什么,workdir
但我似乎无法从脚本内部访问。有谁知道如何workdir
从log_handler
脚本内部访问?
我也尝试过从Path.cwd()
脚本内部使用,但没有奏效。
编辑:为了澄清这一点,snakemake
允许指定一个--log-handler-script
. 根据文档:
我正在尝试编写这样一个脚本(基于this)来解析日志消息并将它们保存在一个文件中,理想情况下,在workdir
. 但为此,脚本需要能够知道当前的工作目录。
谢谢,
node.js - 复制文件时没有这样的文件或目录
我有个问题。我想安装Python
和Node.js
在同一个图像中。但是复制package.json有问题。错误说no such file or directory, open '/opt/app/src/package.json'
。那么这里的问题是什么?我可能做错了什么?
我查看了Docker-compose up : no such file or directory, open '/usr/src/app/package.json',但我不知道我的错误在哪里。
Dockerfile
结构
码头工人-compose.yml
错误