如何在 Dockerfile 中为 sbt 插件添加自定义命令



当我执行sbt docker:publishLocal时,它会创建一个Dockerfile,自动删除文件的先前内容。

我想添加自定义命令以将 cassandra 添加到容器中。我复制粘贴了此文件的内容

https://github.com/docker-library/cassandra/blob/064fb4e2682bf9c1909e4cb27225fa74862c9086/3.11/Dockerfile

并尝试再次运行上述命令。但这会清除所有现有内容并将其替换为默认内容。

如何在 Dockerfile 或 build.sbt 中添加 docker 命令?

sbt-docker 插件有一个自定义部分,包括一个"从头开始编写",这可能会引起人们的兴趣:

您可以简单地清除所有 docker 命令

dockerCommands := Seq()

现在让我们开始添加一些 Docker 命令。

import com.typesafe.sbt.packager.docker._
dockerCommands := Seq(
  Cmd("FROM", "openjdk:8"),
  Cmd("LABEL", s"""MAINTAINER="${maintainer.value}""""),
  ExecCmd("CMD", "echo", "Hello, World from Docker")
)

您可以通过这种方式编写自定义 Dockerfile:它将正确重新生成。

我将如何添加这样的东西:

 RUN set -x  
     && apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/*  
     && wget -O /usr/local/bin/gosu.... 

如文档中的示例所示:

ExecCmd("RUN",
    "set", "-x",
     "&&",
     "apt-get", "update", ...
),

最新更新