docker image kibövitése n8n -el

This commit is contained in:
2025-12-19 17:15:50 +01:00
parent f366b9f0a0
commit 8017dbdbad
2 changed files with 36 additions and 22 deletions

View File

@@ -1,18 +1,19 @@
# 1. lépés: Melyik alap image-ből induljunk?
# 1. lépés: Alap image
FROM fedora:latest
# 2. lépés: Parancsok futtatása a rendszeren belül
# Frissítjük a csomagokat, telepítjük a nodejs-t és az npm-et, majd takarítunk
# 2. lépés: Alap csomagok és NodeJS telepítése
RUN dnf update -y && \
dnf install -y nodejs npm && \
dnf clean all
# 3. lépés: Telepítjük a @google/gemini-cli-t globálisan
RUN npm install -g @google/gemini-cli
# 3. lépés: Globális npm csomagok telepítése (gemini-cli és n8n)
RUN npm install -g @google/gemini-cli n8n
# 4. lépés (Opcionális): Beállítunk egy alapértelmezett munkakönyvtárat
WORKDIR /app
# 4. lépés: n8n portjának dokumentálása
EXPOSE 5678
# 5. lépés: Mi fusson le, ha elindul a konténer?
# Most már a gemini cli verzióját is kiírathatjuk
CMD ["gemini", "--version"]
# 5. lépés: Alapértelmezett munkakönyvtár beállítása az n8n adatoknak
WORKDIR /data
# 6. lépés: A konténer indítási parancsa az n8n szerver elindításához
CMD ["n8n"]

View File

@@ -1,33 +1,46 @@
#!/bin/bash
# Ez a szkript megépíti és elindítja a Docker konténert az API kulcsos hitelesítéssel,
# a változókat a .env fájlból olvassa be.
# FIGYELEM: Az API kulcsos hitelesítés alacsonyabb limitekkel és korlátozottabb modellhozzáféréssel jár (csak Flash modellel).
# Ha jobb limitekre és a teljes Gemini modellcsaládban van szükséged, használd a Google fiókos bejelentkezést.
# Ez a szkript megépíti és elindítja a Docker konténert, amiben az n8n fut.
# Az n8n fogja a gemini parancsokat futtatni a konténeren belül.
# A változókat a .env fájlból olvassa be.
# Álljon le hibánál
set -e
# Az image neve
IMAGE_NAME="my-fedora-app"
# Docker image és konténer nevek
IMAGE_NAME="panda-n8n-app"
CONTAINER_NAME="panda-n8n-container"
# A projekt gyökérkönyvtára (ahol ez a szkript van)
# Projekt gyökérkönyvtára
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Ellenőrizzük, hogy létezik-e a .env fájl
if [ ! -f "$PROJECT_DIR/.env" ]; then
echo "HIBA: A '.env' fájl nem található a '$PROJECT_DIR' mappában."
echo "Kérjük, hozza létre a '.env' fájlt a GOOGLE_API_KEY és GOOGLE_GENAI_USE_VERTEXAI változókkal."
exit 1
fi
# Leállítjuk és eltávolítjuk a korábbi, azonos nevű konténert, ha létezik
if [ "$(docker ps -a -q -f name=$CONTAINER_NAME)" ]; then
echo "A korábbi '$CONTAINER_NAME' konténer leállítása és eltávolítása..."
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
fi
echo "Docker image építése..."
docker build -t "$IMAGE_NAME" "$PROJECT_DIR"
echo "Konténer indítása API kulccsal (változók a .env fájlból)..."
# --it: Interaktív mód, hogy tudd használni a CLI-t
# --rm: Automatikusan törli a konténert, ha leáll
echo "Konténer indítása háttérben (-d)..."
# -d: detached mode (háttérben fut)
# -p 5678:5678: Port forwardolás (host:container)
# --name: A konténer elnevezése a könnyebb kezelhetőségért
# --env-file: Környezeti változók betöltése a .env fájlból
docker run --it --rm \
docker run -d \
-p 5678:5678 \
--name "$CONTAINER_NAME" \
--env-file "$PROJECT_DIR/.env" \
"$IMAGE_NAME"
echo "Az n8n konténer elindult!"
echo "Az n8n felülete elérhető a következő címen: http://localhost:5678"
echo "A konténer logjait a 'docker logs $CONTAINER_NAME' paranccsal nézheted meg."