Home > OS >  /entrypoint.sh: line 8: syntax error: unexpected end of file
/entrypoint.sh: line 8: syntax error: unexpected end of file

Time:04-04

Docker project was created on Linux machine, I'm running windows and I can't get docker-compose up to work. I've read through Stackoverflow's answers and so far I've tried the following (none have worked):

  • Using Visual Studio Code I saved as "LF" instead of CRLF
  • Deleted the file entirely, created a new one using Visual Studio Code, typed the words
  • Cut the entire file, pasted it in Notepad so that formatting gets cleared, copied and pasted back
  • Added various forms of #!/bin/bash to the start of the entrypoint.sh
  • Changed Docker File to use COPY instead of ADD

At this point I'm not sure what else to try. Any ideas?

Edit

entrypoint.sh

if [ "$1" == 'celery' ]; then
  celery -A vicmun worker -l info --uid=celery --gid=celery
else
  ./../wait_for_it.sh db:5433 --timeout=10
  python manage.py migrate
  python manage.py runserver 0.0.0.0:8000
fi

Dockerfile

FROM python:3.9
ENV PYTHONUNBUFFERED 1
ARG APP_ENV=${APP_ENV}
RUN mkdir /src
RUN mkdir /static
WORKDIR /src
ADD ./src /src
ADD entrypoint-${APP_ENV}.sh /entrypoint.sh
ADD wait_for_it.sh /wait_for_it.sh
RUN addgroup --system celery && adduser --system --ingroup celery celery
RUN ["chmod", " x", "/wait_for_it.sh"]
RUN apt-get -y update
RUN apt-get -y install ffmpeg
RUN pip install -r requirements.txt
ENTRYPOINT ["bash", "/entrypoint.sh"]

enter image description here

CodePudding user response:

I don't know your config, but I could resolve that problem by adding in the CMD.

In my case, I could execute a script with docker as follows:

Dockerfile

FROM python:3.10-alpine3.15
ENV PYTHONUNBUFFERED=1

WORKDIR /app

RUN  apk update \
  && apk add --no-cache gcc musl-dev postgresql-dev python3-dev libffi-dev \
  && pip install --upgrade pip

COPY requirements.txt .

RUN python -m pip install -r requirements.txt


COPY . .

CMD [ "sh", "entrypoint.sh" ]

entrypoint.sh

#!/bin/sh

python manage.py makemigrations
python manage.py migrate
python manage.py runserver 0.0.0.0:8000

CodePudding user response:

Well, I feel the cringe for this. Turns out the solution was something I had already done, but it didn't go through until I rebuilt with --no-cache option.

Solution was to:

  • Using Visual Studio Code I saved as "LF" instead of CRLF
  • and run docker-compose build --no-cache
  • Related