OK みなさん、
ここで別のコンテナを動かそうとしています。自分のビジネスでの利用を検討するためにInvoiceNinjaを試してみたいと思っています。コンテナとそのサポートアプリは起動していますが、アクセスできません。InvoiceNinjaのフォーラムで助けを求めましたが、彼らが知っていることはすべて教えてくれました……それでも動きません。彼らはここで質問するように勧めてくれたので、Composeのウィザードの皆さんが私が何を間違えているのか一緒に考えてくれるかもしれません……
composeファイルは以下の通りです:
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"]
アプリが.envファイルを使うので、内容(伏字あり)も載せておきます:
# 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
起動はしますが、先ほど言った通りウェブサイトにアクセスできません。InvoiceNinjaフォーラムで助けてくれたユーザーは以下のように言っていました:
3. Check the Nginx Config
Nginxのボリュームマッピングがあります:- ./nginx:/etc/nginx/conf.d:ro
- そのフォルダ内の設定ファイルが、内部ポート(FPMの場合は通常9000、web-serverバリアントの場合は8000)で
appサービスを正しく指していることを確認してください。- 標準のInvoice Ninja docker-compose例を使っている場合、
fastcgi_passがapp:9000に設定されていることを確認してください。
そこで私は ./nginx:/etc/nginx/conf.d:ro を ./share/Container/invoiceninja/nginx:/etc/nginx/conf.d:ro にマッピングし直しました。
しかし、そのフォルダが作成されず、Nginxコンテナを調べてみると etc/nginx/conf.d が /share/ZFS530_DATA/.qpkg/container-station/data/application/invoiceninja/share/Container/invoiceninja/nginx にマッピングされているのがわかりました。
なぜQNAPは私の指示通りにコンテナをストレージの場所にマッピングしてくれないのでしょうか?これが問題の解決になるかはわかりませんが、その設定ファイルを確認してもっとコントロールしたいです。
他に何か問題がありそうな点があれば教えてもらえますか?