Spaces:
Sleeping
Sleeping
FROM nikolaik/python-nodejs:python3.9-nodejs18 | |
USER root | |
# Install necessary packages | |
RUN apt-get -y update && apt-get -y install nginx xvfb openssh-server | |
# Prepare Nginx directories | |
RUN mkdir -p /var/cache/nginx \ | |
/var/log/nginx \ | |
/var/lib/nginx | |
RUN touch /var/run/nginx.pid | |
# Change ownership to non-root user | |
RUN chown -R pn:pn /var/cache/nginx \ | |
/var/log/nginx \ | |
/var/lib/nginx \ | |
/var/run/nginx.pid | |
# Switch to non-root user | |
USER pn | |
ENV HOME=/home/pn \ | |
PATH=/home/pn/.local/bin:$PATH | |
RUN mkdir $HOME/app | |
WORKDIR $HOME/app | |
# Install necessary npm packages | |
RUN npm install --save express ws | |
# Copy Nginx configuration | |
COPY --chown=pn nginx.conf /etc/nginx/sites-available/default | |
# SSH Setup | |
# Create the .ssh directory and generate SSH key pair non-interactively | |
RUN mkdir -p /home/pn/.ssh && \ | |
ssh-keygen -t rsa -b 4096 -f /home/pn/.ssh/id_rsa -N "" && \ | |
chmod 700 /home/pn/.ssh && \ | |
chmod 600 /home/pn/.ssh/id_rsa && \ | |
chmod 644 /home/pn/.ssh/id_rsa.pub | |
# Expose SSH port (usually port 22) | |
EXPOSE 22 | |
# Switch back to root for running SSH daemon and Nginx | |
USER root | |
# Start SSH manually without systemctl | |
RUN mkdir /var/run/sshd | |
# Expose Nginx port (default port 80) | |
EXPOSE 80 | |
# Ensure services start correctly | |
CMD ["../../../usr/sbin/sshd", "-D"] # Starts the SSH server in the foreground | |