OK zusammen,
ich versuche hier, einen weiteren Container zum Laufen zu bringen. Ich möchte InvoiceNinja ausprobieren, um es eventuell in meinem Unternehmen einzusetzen. Der Container und die unterstützenden Anwendungen laufen bereits, aber ich kann nicht darauf zugreifen. Ich habe bereits im InvoiceNinja-Forum um Hilfe gebeten und sie haben mir alles gesagt, was sie wissen… Es funktioniert trotzdem nicht. Sie haben mir vorgeschlagen, hier nachzufragen. Vielleicht können mir einige von euch Compose-Experten helfen herauszufinden, was ich falsch mache…
Hier ist meine Compose-Datei:
services:
app:
build:
context: .
image: invoiceninja/invoiceninja-debian:latest
restart: unless-stopped
env_file:
- /share/Container/invoiceninja/.env
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
# - ./php/php.ini:/usr/local/etc/php/conf.d/invoiceninja.ini:ro
# - ./php/php-fpm.conf:/usr/local/etc/php-fpm.d/invoiceninja.conf:ro
# - ./supervisor/supervisord.conf:/etc/supervisor/conf.d/supervisord.conf:ro
- /share/Container/invoiceninja/public:/var/www/html/public
- /share/Container/invoiceninja/storage:/var/www/html/storage
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
nginx:
image: nginx:alpine
restart: unless-stopped
ports:
- "8012:80"
volumes:
- ./share/Container/invoiceninja/nginx:/etc/nginx/conf.d:ro
- /share/Container/invoiceninja/public:/var/www/html/public:ro
- /share/Container/invoiceninja/storage:/var/www/html/storage:ro
depends_on:
app:
condition: service_healthy
mysql:
image: mysql:8
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- /share/Container/invoiceninja/mysql_data:/var/lib/mysql
healthcheck:
test:
[
"CMD",
"mysqladmin",
"ping",
"-h",
"localhost",
"-u${MYSQL_USER}",
"-p${MYSQL_PASSWORD}",
]
redis:
image: redis:alpine
restart: unless-stopped
volumes:
- /share/Container/invoiceninja/redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
Und da die App eine .env-Datei verwendet, hier diese Datei mit Schwärzungen:
# IN application vars
APP_URL=http://192.168.0.3:8012
APP_KEY=base64:7some_key_code
APP_ENV=production
APP_DEBUG=true
REQUIRE_HTTPS=false
PHANTOMJS_PDF_GENERATION=false
PDF_GENERATOR=snappdf
TRUSTED_PROXIES='*'
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
FILESYSTEM_DISK=debian_docker
# DB connection
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=ninja
DB_USERNAME=ninja
DB_PASSWORD=*******
DB_ROOT_PASSWORD=********
DB_CONNECTION=mysql
# Create initial user
# Default to these values if empty
IN_USER_EMAIL=admin@example.com
IN_PASSWORD=changeme!
# IN_USER_EMAIL=
# IN_PASSWORD=
# Mail options
MAIL_MAILER=log
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS='user@example.com'
MAIL_FROM_NAME='Self Hosted User'
# MySQL
MYSQL_ROOT_PASSWORD=*****
MYSQL_USER=ninja
MYSQL_PASSWORD=*****
MYSQL_DATABASE=ninja
# GoCardless/Nordigen API key for banking integration
NORDIGEN_SECRET_ID=
NORDIGEN_SECRET_KEY=
IS_DOCKER=true
SCOUT_DRIVER=null
#SNAPPDF_CHROMIUM_PATH=/usr/bin/google-chrome-stable
Also, es startet, aber wie gesagt – ich kann nicht auf die Webseite zugreifen. Sie lädt einfach nicht. Im InvoiceNinja-Forum hat der User, der mir geholfen hat, Folgendes gesagt:
3. Überprüfe die Nginx-Konfiguration
Du hast ein Volume-Mapping für Nginx:- ./nginx:/etc/nginx/conf.d:ro.
- Stelle sicher, dass die Konfigurationsdatei in diesem Ordner korrekt auf den
app-Service am internen Port zeigt (normalerweise 9000 bei FPM oder 8000 bei der Webserver-Variante).- Wenn du das Standard-Invoice Ninja docker-compose-Beispiel verwendest, stelle sicher, dass
fastcgi_passaufapp:9000gesetzt ist.
Also habe ich das Mapping von ./nginx:/etc/nginx/conf.d:ro auf ./share/Container/invoiceninja/nginx:/etc/nginx/conf.d:ro geändert.
Allerdings wird dieser Ordner nicht erstellt und wenn ich in den Nginx-Container reinschaue, sehe ich, dass etc/nginx/conf.d stattdessen auf /share/ZFS530_DATA/.qpkg/container-station/data/application/invoiceninja/share/Container/invoiceninja/nginx gemappt wird.
Warum folgt QNAP nicht meinen Anweisungen und mapped den Container nicht auf den von mir gewünschten Speicherort? Ich weiß nicht, ob das mein Problem löst, aber ich würde mir diese Konfigurationsdatei gerne anschauen und mehr Kontrolle darüber haben.
Sieht sonst noch jemand ein mögliches Problem, das ich hier habe?