Claude super rough first cut of a few packages. Almost certainly entirely unusable...
This commit is contained in:
74
CloudronPackages/Inventree/Dockerfile
Normal file
74
CloudronPackages/Inventree/Dockerfile
Normal file
@@ -0,0 +1,74 @@
|
||||
FROM cloudron/base:4.2.0
|
||||
|
||||
# Set environment variables
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
INVENTREE_HOME=/app/data \
|
||||
INVENTREE_MEDIA_ROOT=/app/data/media \
|
||||
INVENTREE_STATIC_ROOT=/app/data/static \
|
||||
INVENTREE_SECRET_KEY_FILE=/app/data/secret_key.txt \
|
||||
INVENTREE_PLUGINS_ENABLED=true \
|
||||
INVENTREE_PLUGINS_DIR=/app/data/plugins \
|
||||
INVENTREE_ADMIN_USER=admin \
|
||||
INVENTREE_ADMIN_PASSWORD=admin \
|
||||
INVENTREE_ADMIN_EMAIL=admin@example.com
|
||||
|
||||
# Install required packages
|
||||
RUN apt-get update && apt-get install -y \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-dev \
|
||||
python3-venv \
|
||||
build-essential \
|
||||
libpq-dev \
|
||||
git \
|
||||
nginx \
|
||||
supervisor \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Setup nginx for Cloudron
|
||||
RUN rm /etc/nginx/sites-enabled/* \
|
||||
&& sed -e 's,^ErrorLog.*,ErrorLog "/dev/stderr",' -i /etc/nginx/nginx.conf \
|
||||
&& echo "daemon off;" >> /etc/nginx/nginx.conf
|
||||
|
||||
# Create InvenTree directories
|
||||
RUN mkdir -p /app/code \
|
||||
&& mkdir -p /tmp/data/media \
|
||||
&& mkdir -p /tmp/data/static \
|
||||
&& mkdir -p /tmp/data/plugins \
|
||||
&& mkdir -p /tmp/data/env \
|
||||
&& mkdir -p /tmp/data/config
|
||||
|
||||
# Create Python virtual environment
|
||||
RUN python3 -m venv /app/code/env
|
||||
|
||||
# Clone InvenTree source code
|
||||
RUN git clone --depth 1 https://github.com/inventree/InvenTree.git /app/code/inventree
|
||||
|
||||
# Install InvenTree requirements
|
||||
WORKDIR /app/code/inventree
|
||||
RUN /app/code/env/bin/pip install --upgrade pip \
|
||||
&& /app/code/env/bin/pip install wheel \
|
||||
&& /app/code/env/bin/pip install --no-cache-dir -r requirements.txt \
|
||||
&& /app/code/env/bin/pip install psycopg2 gunicorn
|
||||
|
||||
# Create default configuration files
|
||||
COPY config.yaml /tmp/data/config/config.yaml
|
||||
COPY nginx.conf /etc/nginx/sites-available/inventree
|
||||
RUN ln -s /etc/nginx/sites-available/inventree /etc/nginx/sites-enabled/
|
||||
|
||||
# Copy supervisor configuration
|
||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
|
||||
# Add startup script
|
||||
COPY start.sh /app/code/start.sh
|
||||
RUN chmod +x /app/code/start.sh
|
||||
|
||||
# Setup NGINX runtime directory
|
||||
RUN mkdir -p /run/nginx \
|
||||
&& chown -R cloudron:cloudron /run/nginx
|
||||
|
||||
# Expose port
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["/app/code/start.sh"]
|
Reference in New Issue
Block a user