如何在 5 分钟内使用 docker 安装 InvenTree
以下脚本是 InvenTree 的自动安装脚本,它从 GitHub 获取当前 docker-compose.yml 和其他配置,修改它们以便只使用本地目录进行存储,然后设置 InvenTree。
首先,创建一个目录如 /opt/inventree-mydomain。我建议选择唯一的目录名而不是仅 inventree 以保持实例
install_inventree.sh
#!/bin/sh
wget -O nginx.prod.conf https://github.com/inventree/InvenTree/raw/master/docker/production/nginx.prod.conf
wget -O docker-compose.yml https://github.com/inventree/InvenTree/raw/master/docker/production/docker-compose.yml
wget -O .env https://github.com/inventree/InvenTree/raw/master/docker/production/.env
sed -i -e 's/#INVENTREE_DB_USER=pguser/INVENTREE_DB_USER=inventree/g' .env
sed -i -e "s/#INVENTREE_DB_PASSWORD=pgpassword/INVENTREE_DB_PASSWORD=$(pwgen 30 1)/g" .env
sed -i -e "s/INVENTREE_WEB_PORT=1337/INVENTREE_WEB_PORT=$(shuf -i 1024-65535 -n 1)/g" .env
sed -i -e "s/#INVENTREE_ADMIN_USER=/INVENTREE_ADMIN_USER=admin/g" .env
sed -i -e "s/#INVENTREE_ADMIN_PASSWORD=/INVENTREE_ADMIN_PASSWORD=$(pwgen 30 1)/g" .env
sed -i -e "s/#INVENTREE_ADMIN_EMAIL=/INVENTREE_ADMIN_EMAIL=inventree@techoverflow.net/g" .env
sed -i -e 's/COMPOSE_PROJECT_NAME=inventree-production//g' .env
# 启用缓存
sed -i -e "s/#INVENTREE_CACHE_HOST=inventree-cache/INVENTREE_CACHE_HOST=inventree-cache/g" .env
sed -i -e "s/#INVENTREE_CACHE_PORT=6379/INVENTREE_CACHE_PORT=6379/g" .env
# 使用直接目录映射以避免挂载问题
sed -i -e "s%- inventree_data:%- $(pwd)/inventree_data:%g" docker-compose.yml
# ... 现在我们可以从 docker-compose.yml 中删除卷声明
sed -i -e '/^volumes:/,$d' docker-compose.yml
sed -z -i -e 's#profiles:\s*- redis\s*##g' docker-compose.yml # 使 redis 总是启动,即使没有 docker-compose --profile redis
# 使用标准 docker-compose 目录命名以方便多个并行安装
sed -z -i -e 's#container_name:\s*[a-zA-Z0-9_-]*\s*##g' docker-compose.yml # 删除 container_name: ... 语句
# 创建绑定到 docker 卷的数据目录
mkdir -p inventree_data
# 初始化数据库
docker-compose up -d inventree-cache inventree-db # 数据库初始化需要缓存
docker-compose run inventree-server invoke update之后,你可以检查 .env 中的随机生成的 INVENTREE_ADMIN_PASSWORD 和 INVENTREE_WEB_PORT。
现在你可以使用 systemd 启用自动启动并启动服务,更多详细信息请查看我们的文章在 10 秒内为你的 docker-compose 项目创建 systemd 服务:
create_docker_compose_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin不要忘记配置你的反向代理以指向 InvenTree。
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow