Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker error: standard_init_linux.go:185: exec user process caused "no such file or directory"

I'm trying to set my elixir-phoenix app with postgresql database to run with Docker. This is what my Dockerfile looks like:

# ./Dockerfile

# Starting from the official Elixir 1.5.2 image:
# https://hub.docker.com/_/elixir/
FROM elixir:1.5.2

ENV DEBIAN_FRONTEND=noninteractive

# Install hex
RUN mix local.hex

# Install rebar
RUN mix local.rebar

# Install the Phoenix framework itself
RUN mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez

# Install NodeJS 6.x and the NPM
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y -q nodejs

# Set /lib as workdir
WORKDIR /lib

And this is my docker-compose.yml file:

web:
  build: .
  dockerfile: Dockerfile 
  env_file: .env 
  command: mix phx.server # Start the server if no other command is specified
  environment:
    - MIX_ENV=dev
    - PORT=4000
    - PG_HOST=postgres
    - PG_USERNAME=postgres
  volumes:
    - .:/lib 
  ports:
    - "4000:4000"
  links:
    - postgres

test:
  image: phoenixbootstrap_web
  env_file: .env
  command: mix test
  environment:
    - MIX_ENV=test 
    - PORT=4001
    - PG_HOST=postgres
    - PG_USERNAME=postgres
  volumes_from:
    - web
  links:
    - postgres

postgres:
  image: postgres:10.0
  ports:
    - "5432"

The image builds successfully, but when I try to install the dependencies with the following command:

docker-compose run web mix do deps.get

I get these Error:

standard_init_linux.go:185: exec user process caused "no such file or directory"

PS: I found a couple of answers like this one, pointing out a missing line at the beginning of a bash file but it doesn't seem to be my case. I run no bash script and my error appears in line 185, not 179.

like image 886
ntonnelier Avatar asked Oct 09 '17 17:10

ntonnelier


1 Answers

Like you mentioned, one cause could be that the bash file is missing #!/bin/bash at the top.

Another possible reason could be if the file is saved with Windows line endings (CRLF). Save it with Unix line endings (LF) and it will be found.

like image 152
Ryan Allen Avatar answered Oct 19 '22 19:10

Ryan Allen