Docker Cannot Start a Container Because of bash

247 Views Asked by At

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?

0

There are 0 best solutions below