Spaces:
Runtime error
Runtime error
File size: 1,174 Bytes
d823cdc 74d4fd2 d823cdc 3e238cf d823cdc 4c6e399 74d4fd2 37fe4aa 74d4fd2 4c6e399 083649c 4c6e399 083649c d823cdc 74d4fd2 d823cdc 74d4fd2 083649c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# Use Node.js 18 base image
FROM node:18
# Set environment variables for user and password
ENV USER=myuser
ENV PASSWORD=mypassword
# Set the working directory inside the container
WORKDIR /app
# Create a non-root user to run the application
RUN useradd --create-home --shell /bin/bash appuser
# Clone the repository
RUN git clone https://github.com/ChrisCindy/node-web-console.git .
# Install dependencies
RUN npm install
# Modify the config/index.js file while still root (to avoid permission issues)
RUN sed -i "s/YOUR_USERNAME/${USER}/" config/index.js && \
sed -i "s/YOUR_PASSWORD/${PASSWORD}/" config/index.js
# Copy entrypoint script
COPY docker-entrypoint.sh /usr/local/bin/
# Change permissions of the entrypoint script (before switching users)
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# Ensure the non-root user has full access to the /app directory
RUN chown -R appuser:appuser /app
# Switch to the non-root user after all modifications are made
USER appuser
# Expose the port the app runs on
EXPOSE 3000
# Run the entrypoint script and start the web server in production mode
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["npm", "run", "prod"]
|