Как добавить пользовательские команды в Dockerfile для плагина sbt - PullRequest
2 голосов
/ 12 июня 2019

Когда я делаю sbt docker:publishLocal, он создает Dockerfile, автоматически стирая предыдущее содержимое файла.

Я хотел добавить пользовательские команды, чтобы добавить кассандру в контейнер. Я скопировал и вставил содержимое этого файла

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

и снова попытался выполнить указанную команду. Но это стирает весь существующий контент и заменяет его на контент по умолчанию.

Как добавить команды Docker в Dockerfile или build.sbt?

1 Ответ

2 голосов
/ 12 июня 2019

Плагин sbt-docker имеет раздел настроек, , включая один "Write from Scratch" , который может представлять интерес:

Вы можете просто стереть все команды 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")
)

Таким образом вы можете написать свой собственный файл Docker: он будет правильно перегенерирован.

Как я собираюсь добавить что-то вроде этого:

 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", ...
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...