Error Standard_init_linux.go:219: exec user process caused: no such file or directory

Viewed 2672

I'm adding a 'wait for it' shell script to my Django dockerfile. In my local environment all works okay but In a windows 10 machine I have the error below: standard_init_linux.go:219: exec user process caused: no such file or directory.

entrypoint file.

#!/bin/sh

set -o errexit
set -o pipefail
set -o nounset

if [ -z "${DB_USER}" ]; then
  base_db_image_default_user='root'
  export DB_USER="${base_db_image_default_user}"
fi
export DATABASE_URL="jdbc:mysql//${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}"

mysql_ready() {
  python <<END
import sys
import MySQLdb

try:
    MySQLdb.connect(
      host="${DB_HOST}",
      user="${DB_USER}",
      passwd="${DB_PASSWORD}",
      db="${DB_NAME}",
      port=${DB_PORT},
    )
except MySQLdb.OperationalError:
    sys.exit(-1)

sys.exit(0)
END
}
until mysql_ready; do
  echo >&2 'Waiting MYSQL to become available...'
  sleep 1
done

echo >&2 'MYSQL is available'

exec "$@"

Dockerfile.

FROM python:3.7-alpine
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code

ADD requirements.txt /code/
RUN apk add --update \
    python3 \
    python3-dev \
    gcc \
    py-pip \
    build-base \
    git \
    wget \
    libxslt-dev \
    xmlsec-dev \
    mariadb-dev \
    libressl-dev \
    libffi \
    cairo-dev \
    pango-dev \
    gdk-pixbuf \
    jpeg-dev \
    zlib-dev \
    freetype-dev \
    lcms2-dev \
    openjpeg-dev \
    tiff-dev \
    tk-dev \
    tcl-dev \
    fontconfig \
    ttf-dejavu

RUN pip3 install -r requirements.txt
ADD . /code/

ARG DJANGO_APP
ENV DJANGO_APP=${DJANGO_APP}
EXPOSE 8000

RUN sed -i 's/\r//' /code/compose/local/django/entrypoint
RUN chmod +x /code/compose/local/django/entrypoint

ENTRYPOINT ["/code/compose/local/django/entrypoint"]
#CMD ["sh", "-c", "gunicorn --bind 0.0.0.0:8000 ${DJANGO_APP}.wsgi:application"]

docker-compose.yml

version: '3'
services:
  web:
    image: cannon-oms:latest
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    expose:
      - "8000"
    depends_on:
      - db
      - redis
      - rabbit-mq
    env_file:
      - .env
    
  worker:
    image: cannon-oms:latest
    command: celery -A main worker -B -l info --loglevel=info
    volumes:
      - .:/code
    depends_on:
      - rabbit-mq
      - db
      - redis
      - web
    env_file:
      - .env

  redis:
    image: redis
    ports:
      - "6379:6379"
    networks:
      - django-oms

  db:
    image: mysql/mysql-server:5.7
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: db
      MYSQL_USER: dbuser
      MYSQL_PASSWORD: passworddb
      MYSQL_ROOT_PASSWORD: passworddb
    volumes:
      - .:/code
    networks:
      - django-oms
    
  rabbit-mq:
    image: "rabbitmq:3-management"
    environment:
      RABBITMQ_DEFAULT_USER: conejomq
      RABBITMQ_DEFAULT_PASS: badbunny

    

Thank you very much.

0 Answers
Related