小编pra*_*ant的帖子

ansible中shell和command的区别

我是 ansible 世界的新手,任何人都可以帮助我理解 ansible 中 shell 和命令之间的区别。何时使用 shell,何时使用命令。我知道一个用例

命令模块更安全,因为它不受用户环境的影响。

ansible

34
推荐指数
3
解决办法
3万
查看次数

Docker 构建中的权限被拒绝

我有以下 docker 文件

FROM something.com/..../lrh7:latest
RUN whoami
SHELL ["/usr/sbin", "-c"]
RUN /usr/sbin/groupadd -g 1000 AB_DOCKER_SETUP_GROUP
Run Code Online (Sandbox Code Playgroud)

当我进行 docker 构建时,它失败并提示权限被拒绝

container_linux.go:247: starting container process caused "exec: \"/usr/sbin\": permission denied"
Run Code Online (Sandbox Code Playgroud)

但当我改变时

RUN /usr/sbin/groupadd -g 1000 AB_DOCKER_SETUP_GROUP
Run Code Online (Sandbox Code Playgroud)

CMD ["su", "-" ,"groupadd", "-g", "1000", "AB_DOCKER_SETUP_GRO"]
Run Code Online (Sandbox Code Playgroud)

然后docker构建成功。whoami 的输出是 ROOT,这意味着我正在以 root 身份运行,即使在那之后我也必须显式指定 sudo 来添加组。

跑步

RUN su - /usr/sbin/groupadd -g 1000 AB_DOCKER_SETUP_GROUP # sudo/su both fails
Run Code Online (Sandbox Code Playgroud)

也因权限被拒绝而失败。我不清楚幕后发生了什么。

docker dockerfile

9
推荐指数
2
解决办法
3万
查看次数

如何知道构建镜像时使用的是哪个基础镜像?

我有一个图像,我想知道用于构建它的基本图像是什么。换句话说,什么是

FROM base_image?
Run Code Online (Sandbox Code Playgroud)

我尝试过 docker Inspection ,它提供了非常丰富的信息,但它没有回答我们正在寻找的内容。

docker dockerfile

7
推荐指数
0
解决办法
374
查看次数

文件不是带有 -local somePath 的 `goimports`-ed

我在 Golang 项目中做了一些更改,然后运行make test它负责linting 、格式化和单元测试。但是当它运行 linter.sh 时,它会抛出以下错误

pkg/skaffold/kubernetes/wait.go:23: File is not `goimports`-ed with -local github.com/GoogleContainerTools/skaffold (goimports)
        "github.com/GoogleContainerTools/skaffold/pkg/skaffold/kubectl"
Run Code Online (Sandbox Code Playgroud)

这是代码的链接。

go

6
推荐指数
4
解决办法
1万
查看次数

Kubernetes kubectl 复制命令失败

我有一个以 199 用户身份运行 python 图像的 pod。我的代码 app.py 放在/tmp/目录中,现在当我运行复制命令来替换正在运行app.py的命令时,该命令只会因文件存在错误而失败。

在此处输入图片说明

kubernetes google-kubernetes-engine

5
推荐指数
1
解决办法
4199
查看次数

不使用 kubectl cp 将文件复制到 kubernetes pod

我有一个用例,我的 pod 以非 rootuser 身份运行并且它运行一个 python 应用程序。现在我想将文件从主节点复制到正在运行的 pod。但是当我尝试跑步时

kubectl cp app.py 103000-pras-dev/simplehttp-777fd86759-w79pn:/tmp
Run Code Online (Sandbox Code Playgroud)

这个命令挂了,但是当我以 root 用户身份运行 pod 然后运行相同的命令时,它会成功执行。我正在浏览 kubectl cp 的代码,它在内部使用 tar 命令。

Tar 命令有多个标志,如 --overwrite --no-same-owner、--no-preserve 等。现在从 kubectl cp 我们不能将所有这些标志传递给 tar。有什么方法可以使用 kubectl exec 命令或任何其他方式复制文件。

kubectl exec simplehttp-777fd86759-w79pn -- cp app.py /tmp/ **flags**
Run Code Online (Sandbox Code Playgroud)

kubernetes

5
推荐指数
2
解决办法
4524
查看次数

如何访问 kubectl 返回的映射中的密钥

我想访问k8s中get命令返回的limits.memory变量

kubectl get resourcequota default -n 103000-p4-dev -o custom-columns=USED:.status.used
USED
map[limits.memory:0 requests.cpu:0 requests.memory:0]
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法但都没有成功

[root@iaasn00126847 ~]# k get resourcequota default -n 103000-p4-dev -o custom-columns=USED:.status.used.limits.memory
Run Code Online (Sandbox Code Playgroud)

什么都不返回

是否有分隔符来获取相同的内容

kubernetes kubectl

4
推荐指数
2
解决办法
2548
查看次数