| FROM alpine:latest |
|
|
| RUN addgroup -S nginx_admin && adduser -S app_user -G nginx_admin |
| #RUN adduser -D -g 'app_user' nginx_admin |
|
|
| WORKDIR /app |
|
|
|
|
| # Install necessary packages |
| RUN apk update && \ |
| apk upgrade && \ |
| apk add --no-cache openrc bash su-exec python3 py3-pip net-tools udev nginx |
|
|
| # Copy Flask application |
| COPY ./FlaskWebApp /app/FlaskWebApp |
| COPY ./requirements.txt /app/requirements.txt |
|
|
| COPY ./start_pyapps.sh /app/start_pyapps.sh |
| COPY ./start_services.sh /app/start_services.sh |
|
|
| # Copy Angular build files to Nginx web directory |
| ADD ./resources.tar /var/www/portfolio |
|
|
| # Backup original nginx.conf and copy new one |
| COPY ./nginx.conf /etc/nginx/nginx.conf |
|
|
| #RUN mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig |
| #COPY ./default.conf /etc/nginx/conf.d/default.conf |
|
|
| # Python virtual environment |
| RUN python3 -m venv /app/PyEnv && \ |
| /app/PyEnv/bin/pip install --upgrade pip && \ |
| /app/PyEnv/bin/pip install -r /app/requirements.txt && \ |
| chmod -R +x /app |
|
|
| RUN touch /app/flask.log && \ |
| touch /var/lib/nginx/logs/error.log && \ |
| mkdir -p /var/log/nginx /run/nginx /var/lib/nginx/logs/ && \ |
| chown -R app_user:nginx_admin /var/lib/nginx /var/log/nginx /var/lib/nginx/logs/ /app &&\ |
| chmod -R 755 /var/lib/nginx/logs/ |
|
|
| USER app_user |
|
|
| CMD ["sh","-c","/app/start_services.sh"] |