Docker でセットアップした Redmine にファイルがアップロードできなくなったので調べたところ、SSL 対応のために導入した Nginx が直接的な原因だった。
client_max_body_size
Nginx はデフォルトでのファイルのアップロードサイズは client_max_body_size
のデフォルト値で1MBに制限されている。 1 2 3
conf.d/custom_proxy_settings.conf
client_max_body_size 1g;
docker-compose.yml
jwilder/nginx-proxy
に作成した conf.d/custom_proxy_settings.conf
をマウントする。
docker-compose.yml
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
restart: always
privileged: true
ports:
- 80:80
- 443:443
volumes:
- /srv/ssl_proxy/certs:/etc/nginx/certs:ro
- /srv/ssl_proxy/htpasswd:/etc/nginx/htpasswd
- /srv/ssl_proxy/conf.d/custom_proxy_settings.conf:/etc/nginx/conf.d/custom_proxy_settings.conf:ro
- nginx-proxy:/etc/nginx/vhost.d
- nginx-proxy:/usr/share/nginx/html
- /srv/ssl_proxy/log:/var/log/nginx
- /var/run/docker.sock:/tmp/docker.sock:ro
コンテナの再起動
docker-compose up -d