I'm having a Docker image which looks like below when inspected.
[
{
"Id": "sha256:e11214d50ae2bf3ec1f97171a35d1164a04198bc879284a7b4bef4600272f978",
"RepoTags": [
"joesan/housing-price-prediction-data-preparation-run:0.1.0-SNAPSHOT",
"joesan/housing-price-prediction-data-preparation-run:latest",
"remote-repository-name:0.1.0-SNAPSHOT",
"remote-repository-name:latest",
"run:0.1.0-SNAPSHOT",
"run:latest"
],
"RepoDigests": [],
"Parent": "sha256:5fffbc0f10de417e3bee965179c587f4f624f95c791b7cf83f11fe530de1f167",
"Comment": "",
"Created": "2022-05-31T20:06:34.723768648Z",
"Container": "158899e129f70bf77de8e3acf3b601b68b8673634dc946886914881e7cd7bbf2",
"ContainerConfig": {
"Hostname": "158899e129f7",
"Domainname": "",
"User": "1001:0",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US:en",
"LC_ALL=en_US.UTF-8",
"JAVA_VERSION=jdk-13.0.2+8",
"JAVA_HOME=/opt/java/openjdk",
"LOG_DIR=/opt/docker/logs"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD []"
],
"Image": "sha256:5fffbc0f10de417e3bee965179c587f4f624f95c791b7cf83f11fe530de1f167",
"Volumes": {
"/opt/docker/logs": {}
},
"WorkingDir": "/opt/docker",
"Entrypoint": [
"/opt/docker/bin/run"
],
"OnBuild": null,
"Labels": {
"MAINTAINER": "https://github.com/joesan"
}
},
"DockerVersion": "20.10.16",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "1001:0",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US:en",
"LC_ALL=en_US.UTF-8",
"JAVA_VERSION=jdk-13.0.2+8",
"JAVA_HOME=/opt/java/openjdk",
"LOG_DIR=/opt/docker/logs"
],
"Cmd": [],
"Image": "sha256:5fffbc0f10de417e3bee965179c587f4f624f95c791b7cf83f11fe530de1f167",
"Volumes": {
"/opt/docker/logs": {}
},
"WorkingDir": "/opt/docker",
"Entrypoint": [
"/opt/docker/bin/run"
],
"OnBuild": null,
"Labels": {
"MAINTAINER": "https://github.com/joesan"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 283832166,
"VirtualSize": 283832166,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/e575a82f236695190a93d6c6d88ecfdf6d1ce9212d3d957dcf843e49a8300c46/diff:/var/lib/docker/overlay2/cb5e202b3311e93d6cd31ec469409e196b6c4a04e9d05419d9f53a7f0a677ca2/diff:/var/lib/docker/overlay2/ea02909e4fd285f96af92de7a272f8ed7e7c1cebbeb43260c6a0bed77c1ccea4/diff:/var/lib/docker/overlay2/22c356c32c089c7e4f9e46cf86bb862c239ecc4308f44ac0ebba0f0b54c475f8/diff:/var/lib/docker/overlay2/307b78517367431d93218f6b7721d1a1dff642a4c4a9223aa8f2c78203f4de32/diff:/var/lib/docker/overlay2/d5d489df9f5b1df0fa22913bdc26ec7769fa2e7c31120ce2ace704a559a24975/diff:/var/lib/docker/overlay2/ceb258d847a218493b90d9bf8784bae782dce940f8d77a5d03cffd3ca35cb0c9/diff:/var/lib/docker/overlay2/9103770fe966d570652142b356128392c51e2085665bcf45e2a891788cf1a608/diff:/var/lib/docker/overlay2/d6020a197bad3f7353033b65b9dc892493a1b88e155ed696f5d4cab523162c32/diff",
"MergedDir": "/var/lib/docker/overlay2/4ca9cfd6aeb4b6fba2c2b6febc7495120f78432ed6676a50268e3b551ce78a2f/merged",
"UpperDir": "/var/lib/docker/overlay2/4ca9cfd6aeb4b6fba2c2b6febc7495120f78432ed6676a50268e3b551ce78a2f/diff",
"WorkDir": "/var/lib/docker/overlay2/4ca9cfd6aeb4b6fba2c2b6febc7495120f78432ed6676a50268e3b551ce78a2f/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:50644c29ef5a27c9a40c393a73ece2479de78325cae7d762ef3cdc19bf42dd0a",
"sha256:e9bf0d233b4aa9356e06c8bafe04d6fa26dca57519d7a1f7381fa1e81d851057",
"sha256:1c9d4daf65688a60e21d20a152f77efea692008781dd2f3cf2f65a060ea1c525",
"sha256:ed502be72f7430e3cd899e2e69493a9a8602dccf7937e8bd28a65035cfaf8e14",
"sha256:d5a672bd7d34f9d7d0e50906aa6e9b1738d70b8848bc64b7d80cf586076364e3",
"sha256:c84750f54e0212ea00b3e3acc327dac57829b5b738cc989dd3f42dfc751d3707",
"sha256:6f91304b15347950dd8a555192151d3c08e77536a7c1f5d8c8440d137dadb9aa",
"sha256:76815c495bd4f1dd92e1621ab6a49172c97c874f8403c5b76b0d8df672ea5ace",
"sha256:147ac82a72dc269fba0031ec096949d5343739815c5cf2aa020c330fe2f2fa3a",
"sha256:82b2748702ee0e20d1f419d245f75798ec13046d8994b0046f78a4152e7fcfde"
]
},
"Metadata": {
"LastTagTime": "2022-05-31T22:10:55.894269298+02:00"
}
}
]
This is a generated Docker image using the sbt-native-packager as I'm having a Scala project and using sbt as the build tool. I was now trying to run this Docker image as below:
joesan@joesan-InfinityBook-S-14-v5:~/Projects/Private/ml-projects/housing-price-prediction-data-preparation$ docker run --rm -it joesan/housing-price-prediction-data-preparation-run:latest
env: can't execute 'bash': No such file or directory
Here is my build.sbt:
lazy val impute = (project in file(MODULE_NAME_IMPUTE)).dependsOn(core% "compile->compile;test->test", config)
.settings(
commonSettings,
enablingCoverageSettings,
name := MODULE_NAME_IMPUTE,
description := "Impute the training data"
)
.enablePlugins(JavaAppPackaging, DockerPlugin)
lazy val split = (project in file(MODULE_NAME_SPLIT)).dependsOn(core% "compile->compile;test->test", config)
.settings(
commonSettings,
enablingCoverageSettings,
dockerSettings("split"),
name := MODULE_NAME_SPLIT,
description := "Split the dataset into train and test"
)
.enablePlugins(JavaAppPackaging, DockerPlugin)
lazy val run = (project in file(MODULE_NAME_RUN)).dependsOn(core % "compile->compile;test->test", config, cleanse, encode, feature, impute, split)
.settings(
commonSettings,
dockerSettings("run"),
enablingCoverageSettings,
name := MODULE_NAME_RUN,
description := "To run the whole setup as a pipeline locally"
)
.enablePlugins(JavaAppPackaging, DockerPlugin)
And here is my dockerSettings() function in my build.sbt:
def dockerSettings(name: String) = {
Seq(
// Always use latest tag
dockerUpdateLatest := true,
maintainer := s"$projectMaintainer",
// https://hub.docker.com/r/adoptopenjdk/openjdk13
// Remember to use AshScriptPlugin if you are using an alpine based image
dockerBaseImage := "adoptopenjdk/openjdk13:alpine-slim",
// If you want to publish to a remote docker repository, uncomment the following:
//dockerRepository := Some("remote-docker-hostname"),
Docker / packageName := s"joesan/$projectName-$name",
// If we're running in a docker container, then export logging volume.
Docker / defaultLinuxLogsLocation := "/opt/docker/logs",
dockerExposedVolumes := Seq((Docker / defaultLinuxLogsLocation).value),
dockerEnvVars := Map(
"LOG_DIR" -> (Docker / defaultLinuxLogsLocation).value,
)
)
}
How do I get past this?