问题标签 [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.

0 投票
4 回答
94121 浏览

docker - docker:Dockerfile 中的默认 WORKDIR 是什么?

我们可以WORKDIR在 中设置一个目录为工作目录Dockerfile,但是如果我们不设置,默认值是多少呢?

0 投票
1 回答
662 浏览

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 有关吗?

0 投票
1 回答
73 浏览

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 中更改命令中的某些内容?

提前致谢

0 投票
1 回答
929 浏览

docker - 如何使用父文件夹作为 workdir 构建 docker 映像?

这可能是一个愚蠢的问题,但我是 Docker 的新手,我对此感到很困惑。我有一个包含许多子文件夹的项目,如下例所示:

然后,我想这样做:

  1. project-folder为所有容器维护我的工作目录;
  2. 在每个容器内,我应该能够访问folder_data- 我知道我必须指定一个卷,我只是不知道如何做到这一点而不保留我project-folder的工作目录;
  3. 我需要将我的 workdir ( project-folder) 传递给我的 code1.py

注意:只有当我在每个子文件夹中创建它时,我的图像才成功创建,例如这个 Dockerfile:

图像创建命令:

我目前正在上下文中创建图像folder_1,因为我无法在上下文中正确创建图像project-folder

0 投票
1 回答
115 浏览

git - Git pull 不起作用并显示本地文件已修改且未修改

我正在尝试从目录外部执行 git pull,并且正在运行以下命令:

输出是“Alrady Up To Date”,或者它只是“拉”修改,但文件不是远程文件,即使 git pull 输出显示它应该是,并且 git status 显示文件是“修改”,好像他在 git pull 之后保留了本地版本并告诉我我修改了它。

我该如何解决这个问题?我已经了解了 --work-tree 选项,但我不知道它是否会以某种方式产生影响。

0 投票
0 回答
85 浏览

rust - Rust:有没有一种简单的方法来 tar 一个不包括一些子目录和文件的目录?

我正在开发一个 rust 的小型 cli,我想从一个目录创建一个 tgz 文件。不过,我想从中排除一些文件和目录。例如,我想从任何目录中排除任何 .custom 文件。

我最终使用了 tar 和 workdir crate,但不知何故,我最终得到的代码似乎非常复杂……此外,似乎 tar crate 不支持像 cli 那样排除文件或目录。

所以我所做的是使用 workdir 遍历目录中的所有文件,过滤我想要排除的文件并在存档中一个一个添加文件。

有没有一种神奇的方法可以简单地做到这一点?

非常感谢 !

0 投票
1 回答
26 浏览

docker - 使用模式设置 WORKDIR

有没有办法将 WORKDIR 更改为第一个模式匹配的文件夹?就像是

与我的本地终端行为不同,文件变量保持为空,尽管当前的 WORKDIR 是正确的,并且该文件夹基于 docker 构建日志肯定存在。

编辑:为了澄清,用例是:

有一个 Go 包 (lilliput) 附带预构建的二进制文件,但这些二进制文件在我们的 docker 想象将运行的平台上不起作用。值得庆幸的是,这个包build_deps.sh为这种情况提供了一个,但这必须从包安装文件夹中执行。这个文件夹将根据包的发布版本有一个任意的名称(例如lilliput@v0.0.0-20210720001558-e1547514bd5f)目标是模式匹配这个文件夹lilliput*,切换 WORKDIR 并在那里开始依赖构建。

0 投票
3 回答
190 浏览

image - WORKDIR 是否创建目录?

这些是 Dockerfile 的前 2 行:

以下是一些我不明白的事情: 从 docker 的文档中,我知道第二行将工作目录设置为 /code。这个过程发生在哪里?当 docker 在创建映像时运行 Dockerfile 的第二行时会发生这种情况吗?如果 /code 不存在,它是由 docker 创建的吗?/code 将在哪里创建?在图像的根目录中?

0 投票
0 回答
24 浏览

logging - snakemake:从 log_handler 脚本内部访问 workdir

我正在尝试创建一个自定义log_handler脚本,可以将工作流的日志保存为 JSON 文件{workdir}/logs。为此,我需要知道当前是什么,workdir但我似乎无法从脚本内部访问。有谁知道如何workdirlog_handler脚本内部访问?

我也尝试过从Path.cwd()脚本内部使用,但没有奏效。

编辑:为了澄清这一点,snakemake允许指定一个--log-handler-script. 根据文档:

我正在尝试编写这样一个脚本(基于this)来解析日志消息并将它们保存在一个文件中,理想情况下,在workdir. 但为此,脚本需要能够知道当前的工作目录。

谢谢,

0 投票
3 回答
64 浏览

node.js - 复制文件时没有这样的文件或目录

我有个问题。我想安装PythonNode.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

错误