| 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"] |