'Docker nginx not starting after running custom script

We have an angular app we are trying to run in docker nginx. I have to run a script on startup that uses an environment variableto replace the app url for each stage. This is needed to connect to the backend. We do not wish to build the container for each stage. The container will run in Azure docker. For now i am running it locally. It executes my script and then the app shuts down.

The Docker File:

FROM node:8.11.2-alpine as node
LABEL author="My Online Presence"
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:1.13.12-alpine
COPY /certificates /etc/nginx/
COPY --from=node /usr/src/app/dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf 
ADD run.sh /usr/share/nginx/html/run.sh

RUN apk add --update bash && rm -rf /var/cache/apk/*
RUN chmod +x /usr/share/nginx/html/run.sh
ENTRYPOINT ["/usr/share/nginx/html/run.sh"]
CMD ["nginx", "-g", "daemon off;"]

The run.sh file

#!/bin/sh
FILE_NAME=$(find . -name "main*.js")
sed -i "s/localhost\:4200/${DIGITISE_URL}/g" $FILE_NAME
echo 'File updated with correct url'

i use

docker build -t digitise .

and then

docker run -p 80:80 -p 443:443 -e DIGITISE_URL=digitise.co.za digitise


Solution 1:[1]

I got it working simply by adding

exec "$@"

to the end of my script being run

Solution 2:[2]

You can also start nginx service in your script.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Arno4Jackie
Solution 2 AnthonyT