BinaryONe commited on
Commit ·
ddcc562
1
Parent(s): c428c38
Nginx Changes-Over Alpine
Browse files- Dockerfile +13 -28
Dockerfile
CHANGED
|
@@ -2,16 +2,14 @@ FROM alpine:latest
|
|
| 2 |
|
| 3 |
# Install system dependencies
|
| 4 |
RUN apk update && apk upgrade && \
|
| 5 |
-
apk add --no-cache nginx python3 python3-dev py3-pip build-base libffi-dev openssl-dev shadow gcc musl-dev ca-certificates
|
| 6 |
|
| 7 |
# Create a group and user
|
| 8 |
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
|
| 9 |
|
| 10 |
-
#
|
| 11 |
-
RUN echo "appuser ALL=(ALL:ALL) ALL" >> /etc/sudoers
|
| 12 |
-
|
| 13 |
-
# Add appuser to the sudoers file (allowing all commands without password)
|
| 14 |
-
RUN echo "nginx ALL=(ALL:ALL) ALL" >> /etc/sudoers
|
| 15 |
|
| 16 |
# Set working directory
|
| 17 |
WORKDIR /app
|
|
@@ -21,42 +19,29 @@ COPY requirements.txt /app/
|
|
| 21 |
RUN python3 -m venv /app/venv && \
|
| 22 |
/app/venv/bin/pip install --no-cache-dir --upgrade pip && \
|
| 23 |
/app/venv/bin/pip install --no-cache-dir -r requirements.txt && \
|
| 24 |
-
/app/venv/bin/pip list
|
|
|
|
| 25 |
|
| 26 |
# Copy the rest of the application code
|
| 27 |
COPY . /app
|
| 28 |
|
| 29 |
# Copy Nginx config
|
| 30 |
COPY www.privateone-teleapi.hf.space.conf /etc/nginx/conf.d/www.privateone-teleapi.hf.space.conf
|
| 31 |
-
#COPY nginx.conf /etc/nginx/nginx.conf
|
| 32 |
-
|
| 33 |
|
| 34 |
-
#
|
| 35 |
-
#RUN touch /var/lib/nginx/logs/error.log && \
|
| 36 |
-
# chmod 777 /var/lib/nginx/logs/error.log
|
| 37 |
-
|
| 38 |
-
# Create necessary directories and set correct permissions
|
| 39 |
RUN mkdir -p /var/www/html /var/log/nginx /run/nginx && \
|
| 40 |
-
chown -R nginx:nginx /var/lib/nginx /var/log/nginx /run/nginx && \
|
| 41 |
-
|
| 42 |
-
chown -R appuser:nginx /app /var/www/html /var/log/nginx
|
| 43 |
|
| 44 |
-
# Remove the user directive from the main nginx.conf
|
| 45 |
#RUN sed -i '/^user /d' /etc/nginx/nginx.conf
|
| 46 |
|
| 47 |
-
# Print the configuration files to the console (
|
| 48 |
RUN cat /etc/nginx/nginx.conf && echo "--------------------"
|
| 49 |
-
# && cat /etc/nginx/conf.d/default.conf
|
| 50 |
-
|
| 51 |
|
| 52 |
# Switch to non-root user
|
| 53 |
USER appuser
|
| 54 |
|
| 55 |
-
#RUN /etc/init.d/nginx status
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
EXPOSE 7860
|
| 59 |
-
|
| 60 |
# Start Nginx and your application (using exec and the correct Python path)
|
| 61 |
-
|
| 62 |
-
CMD ["sh", "-c", "rc-service nginx start && exec /app/venv/bin/python -u -m FileStream"]
|
|
|
|
| 2 |
|
| 3 |
# Install system dependencies
|
| 4 |
RUN apk update && apk upgrade && \
|
| 5 |
+
apk add --no-cache nginx python3 python3-dev py3-pip build-base libffi-dev openssl-dev shadow gcc musl-dev ca-certificates openrc
|
| 6 |
|
| 7 |
# Create a group and user
|
| 8 |
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
|
| 9 |
|
| 10 |
+
# Remove sudoers entries (highly recommended)
|
| 11 |
+
#RUN echo "appuser ALL=(ALL:ALL) ALL" >> /etc/sudoers
|
| 12 |
+
#RUN echo "nginx ALL=(ALL:ALL) ALL" >> /etc/sudoers
|
|
|
|
|
|
|
| 13 |
|
| 14 |
# Set working directory
|
| 15 |
WORKDIR /app
|
|
|
|
| 19 |
RUN python3 -m venv /app/venv && \
|
| 20 |
/app/venv/bin/pip install --no-cache-dir --upgrade pip && \
|
| 21 |
/app/venv/bin/pip install --no-cache-dir -r requirements.txt && \
|
| 22 |
+
/app/venv/bin/pip list
|
| 23 |
+
# Verify installation WITHIN THE SAME RUN COMMAND
|
| 24 |
|
| 25 |
# Copy the rest of the application code
|
| 26 |
COPY . /app
|
| 27 |
|
| 28 |
# Copy Nginx config
|
| 29 |
COPY www.privateone-teleapi.hf.space.conf /etc/nginx/conf.d/www.privateone-teleapi.hf.space.conf
|
|
|
|
|
|
|
| 30 |
|
| 31 |
+
# Create necessary directories and set correct permissions (fix ownership)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
RUN mkdir -p /var/www/html /var/log/nginx /run/nginx && \
|
| 33 |
+
chown -R nginx:nginx /var/lib/nginx /var/log/nginx /run/nginx && \
|
| 34 |
+
chown -R appuser:appgroup /app /var/www/html # Fix ownership here
|
|
|
|
| 35 |
|
| 36 |
+
# Remove the user directive from the main nginx.conf (not needed)
|
| 37 |
#RUN sed -i '/^user /d' /etc/nginx/nginx.conf
|
| 38 |
|
| 39 |
+
# Print the configuration files to the console (good addition)
|
| 40 |
RUN cat /etc/nginx/nginx.conf && echo "--------------------"
|
| 41 |
+
# && cat /etc/nginx/conf.d/default.conf
|
|
|
|
| 42 |
|
| 43 |
# Switch to non-root user
|
| 44 |
USER appuser
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
# Start Nginx and your application (using exec and the correct Python path)
|
| 47 |
+
CMD ["sh", "-c", "rc-service nginx -s reload && exec /app/venv/bin/python -u -m FileStream"]
|
|
|