Skip to content

Interpreter: No such file or directory #2149

Open
@matbrgz

Description

I'm getting [FATAL tini (6)] exec /bin/bash -c 'echo hello world' failed: No such file or directory any idea?
There isn't a CRLF problem, all files alrready are on LF (I use dos2unix on all files to make certain), already try /usr/bin/env bash and /bin/sh.

dockerfile


FROM ubuntu:xenial

# Update then install needed programs
RUN apt-get -qq -y update && \
  apt-get -qq -y upgrade && \
  apt-get -qq -y install \
  software-properties-common build-essential patch \
  git make gcc tree zlib1g-dev wget

# Instaling Hyperfine
RUN wget https://github.com/sharkdp/hyperfine/releases/download/v1.2.0/hyperfine_1.2.0_amd64.deb \
    && dpkg -i hyperfine_1.2.0_amd64.deb \
    && rm hyperfine_1.2.0_amd64.deb

# Install Hugo
RUN wget https://github.com/gohugoio/hugo/releases/download/v0.48/hugo_0.48_Linux-64bit.deb \
    && dpkg -i hugo_0.48_Linux-64bit.deb \
	&& rm hugo_0.48_Linux-64bit.deb

# Generator Dir
RUN mkdir /opt/hugo
COPY . /opt/hugo/
WORKDIR /opt/hugo

# Clean instal
RUN apt-get -qq -y clean && \
    apt-get -qq -y purge && \
    apt-get -qq -y --purge autoremove && \
    rm -rf /var/lib/apt/lists/*

Program.py


self.server = docker.DockerClient(base_url=self.benchmarker.config.server_docker_host)

def run(self, test, run_log_dir):
        """
        Run the given Docker container(s)
        """

        log_prefix = "%s: " % test.name
        container = None

        try:

            def watch_container(docker_container, docker_file):
                with open(os.path.join(run_log_dir, "%s.log" % docker_file.replace(
                        ".dockerfile", "").lower()), 'w') as run_log:
                    for line in docker_container.logs(stream=True):
                        log(line, prefix=log_prefix, file=run_log)

            extra_hosts = None
            name = "ssgberk-server"

            if self.benchmarker.config.network is None:
                extra_hosts = {
                    socket.gethostname():
                    str(self.benchmarker.config.server_host),
                    'ssgberk-server':
                    str(self.benchmarker.config.server_host),
                }
                name = None

            sysctl = {'net.core.somaxconn': 65535}

            ulimit = [{
                'name': 'nofile',
                'hard': 200000,
                'soft': 200000
            }, {
                'name': 'rtprio',
                'hard': 99,
                'soft': 99
            }]

            commands = ["/bin/bash -c 'echo hello world'", "/usr/bin/env bash -c 'chmod a+x build.sh'", "/usr/bin/env bash -c './build.sh'"]
            #commands = ["bash -c 'ls -l'", "ls /usr/bin/", "ls /bin"]

            container = self.server.containers.run(
                "matheusrv/ssgberk.test.%s" % test.name,
                command=list(commands),
                name=name,
                network=self.benchmarker.config.network,
                network_mode=self.benchmarker.config.network_mode,
                stderr=True,
                detach=True,
                init=True,
                extra_hosts=extra_hosts,
                privileged=True,
                ulimits=ulimit,
                sysctls=sysctl,
                remove=True,
                log_config={'type': None})

            watch_thread = Thread(
                target=watch_container,
                args=(
                    container,
                    "%s.dockerfile" % test.name,
                ))

            watch_thread.daemon = True
            watch_thread.start()


            #with open(os.path.join(run_log_dir, "%s.log" % test.name.lower()), 'w') as run_log:
            #    print(test.name)
            #    call(["/bin/bash docker"],shell=True)

        except Exception:
            with open(os.path.join(run_log_dir, "%s.log" % test.name.lower()), 'w') as run_log:
                tb = traceback.format_exc()
                log("Running docker cointainer: %s.dockerfile failed" %
                    test.name,
                    prefix=log_prefix,
                    file=run_log)
                log(tb, prefix=log_prefix, file=run_log)

        return container

versions

(bash on windows) $ uname -a
Linux DESKTOP-TKI46T0 4.4.0-17134-Microsoft #285-Microsoft Thu Aug 30 17:31:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux

(vagrant) $ uname -a
Linux SSGBERK-all 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

(vagrant) $ docker -v
Docker version 18.06.1-ce, build e68fc7a

(vagrant) $python3 -v
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux

(vagrant)
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:24:56 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:23:21 2018
  OS/Arch:          linux/amd64
  Experimental:     false

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions