scala - 如何在sbt-build docker镜像中提升特权

标签 scala docker kubernetes sbt

我正在尝试调试我的应用程序,该应用程序在Docker容器的kubernetes中运行。该镜像是使用sbt native-packager docker插件构建的。我想登录到Pod并在那里进行调查,但是默认的用户帐户(demiourgos728)没有特权,并且我不知道如何切换到root帐户。

我尝试运行kubectl exec --user=root image -- bash(未找到用户),也尝试在图像中运行su -(身份验证失败),但没有成功。用于构建应用程序的基本镜像是java:8。

这些是我在build.sbt中的docker设置:

.settings(
    Seq(
      dockerBaseImage := "java:8",
      publishArtifact := false,
      dockerExposedPorts ++= Seq(8088), 
      packageName in Docker := "api-endpoint"
    ))

最佳答案

--user=root中的kubectl用于在您的kube-apiserver上进行身份验证,而不是强制容器以用户身份在容器中执行命令。

如果您在节点上运行docker并想强制升级为root,则可以ssh到运行容器的节点,然后运行:

$ docker exec -it --user=root <container-id> bash
# or
$ docker exec -it -u root <container-id> bash

您可以使用以下命令找出运行pod /容器的节点:
$ kubectl describe pod <pod-id>

关于scala - 如何在sbt-build docker镜像中提升特权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57013318/

相关文章:

mysql - 如果第二列值出现在第一列中,则 Spark Sql 查询从两列中选择值

scala - 将 scala play 项目导入 Intellij 时出错

azure - Azure 上的 Aks Creation 需要很长时间才能收到以下错误消息

kubernetes - 如何在多主机部署中监视kube-apiserver?

docker - CORS header 两次响应

scala - 在 sbt compile 上获取 Unresolved 依赖关系

scala - Scala其他实例的 protected 成员

mysql - Gitlab CI 黄昏 - MySQL 连接被拒绝

docker - 在可能已停止的容器上运行docker exec,以便它将执行而不会出错

docker - 如何检查不同 Docker 镜像层的内容?