diff --git a/.github/workflows/docker-build-test.yml b/.github/workflows/docker-build-test.yml new file mode 100644 index 00000000..20d66d3f --- /dev/null +++ b/.github/workflows/docker-build-test.yml @@ -0,0 +1,42 @@ +name: Docker Compose Test + +on: + push: + branches: [ "main" ] + paths: + - 'docker-compose.yml' + - 'Dockerfile.n8n' + pull_request: + branches: [ "main" ] + paths: + - 'docker-compose.yml' + - 'Dockerfile.n8n' + workflow_dispatch: + +jobs: + test-docker-compose: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Create env file + run: | + echo "POSTGRES_USER=n8n" > .env + echo "POSTGRES_PASSWORD=n8n" >> .env + echo "POSTGRES_DB=n8n" >> .env + echo "N8N_ENCRYPTION_KEY=randomkey" >> .env + echo "N8N_USER_MANAGEMENT_JWT_SECRET=randomsecret" >> .env + + - name: Test Docker Compose + run: | + docker compose up -d + sleep 30 + docker compose ps + docker compose logs + docker compose down \ No newline at end of file diff --git a/Dockerfile.n8n b/Dockerfile.n8n new file mode 100644 index 00000000..cfc072a3 --- /dev/null +++ b/Dockerfile.n8n @@ -0,0 +1,20 @@ +FROM n8nio/n8n:latest + +USER root + +# Install dependency for chrome browser +RUN apk add --no-cache \ + chromium \ + chromium-chromedriver \ + nss \ + freetype \ + freetype-dev \ + harfbuzz \ + ca-certificates \ + ttf-freefont + +# Set global parameter +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ + PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser + +USER node \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 0bb32070..6e7e10c6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,8 +19,13 @@ x-n8n: &service-n8n - N8N_PERSONALIZATION_ENABLED=false - N8N_ENCRYPTION_KEY - N8N_USER_MANAGEMENT_JWT_SECRET + - NODE_FUNCTION_ALLOW_EXTERNAL=* + - PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true links: - postgres + build: + context: . + dockerfile: Dockerfile.n8n x-ollama: &service-ollama image: ollama/ollama:latest