前提
dockerでredmine + nginx + unicornのコンテナを作成しようとしています。
nginxのコンテナに、rails及びredmineをインストールし、docker-compose.yml
からredmine + unicornを起動しようとすると起動しません。
docker-compose.ymlにコマンドを記述せずに、コンテナに入ってから
起動スクリプトを叩くと起動し、PCのブラウザからも正常にアクセス可能となります。
実現したいこと
dockerコンテナ起動時にredmineも自動で起動させたいです。
※systemctlで起動させる方法をトライしましたが、そもそもdockerコンテナに
systemctlに追加が出来ませんでした。
発生している問題・エラーメッセージ
/usr/share/redmine# cat log/unicorn.stderr.log
INFO -- : Refreshing Gem list INFO -- : listening on addr=/usr/share/redmine/tmp/unicorn.sock fd=7 INFO -- : listening on addr=0.0.0.0:8282 fd=10 INFO -- : master process ready INFO -- : worker=0 ready INFO -- : worker=1 ready
上記の内容は問題ないかと思われますが、他にどこを確認したらよいか分かりません。
該当のソースコード
[docker-compose.yml]
version: '3' services: redmine01: image: koetaro/ubuntu-nginx-redmine container_name: mynginx-redmine01 ports: - 8080:80 volumes: - ./data/plugins:/usr/share/redmine/plugins - ./data/themes:/usr/share/redmine/public/themes - ./redmine/database.yml:/usr/share/redmine/config/database.yml extra_hosts: - db-host:192.168.100.1 networks: app_net: ipv4_address: 192.168.100.2 environment: REDMINE_DB_MYSQL: redmine REDMINE_DB_PASSWORD: redmine TZ: Asia/Tokyo #command: sh -c "/root/.rbenv/shims/bundle exec 'unicorn_rails -D -c /usr/share/redmine/config/unicorn.rb -E production'" working_dir: /usr/share/redmine restart: always
[database.yml]
# Default setup is given for MySQL 5.7.7 or later. # Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end. # Line indentation must be 2 spaces (no tabs). production: adapter: mysql2 database: redmine host: db-host username: redmine password: redmine # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 encoding: utf8mb4
[unicorn.rb]
# -*- coding: utf-8 -*- worker_processes 2 listen "/usr/share/redmine/tmp/unicorn.sock", :backlog => 32 listen 8282, :tcp_nopush => true timeout 30 pid "/usr/share/redmine/tmp/unicorn.pid" stderr_path '/usr/share/redmine/log/unicorn.stderr.log' stdout_path '/usr/share/redmine/log/unicorn.stdout.log' preload_app true check_client_connection false before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH end end end after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
[nginxの設定]
/etc/nginx/conf.d/redmine.conf
upstream unicorn { server unix:/usr/share/redmine/tmp/unicorn.sock; } server { listen 80; server_name _; root /usr/share/redmine/public; client_max_body_size 1G; location / { try_files $uri/index.html $uri.html $uri @app; } location @app { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_connect_timeout 60; proxy_read_timeout 60; proxy_send_timeout 600; proxy_pass http://unicorn; } error_page 500 502 503 504 /500.html; }
/etc/nginx/sites-available/default
全てコメントアウト
/etc/nginx/nginx.conf(デフォルト)
user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIDPLUS"; # # server { # listen localhost:110; # protocol pop3; # proxy on; # } # # server { # listen localhost:143; # protocol imap; # proxy on; # } #}
/tmp/startredmine.sh
※redmineの起動スクリプト
#!/bin/bash cd /usr/share/redmine /root/.rbenv/shims/bundle install rm -rf /usr/share/redmine/tmp/unicorn.pid rm -rf /usr/share/redmine/tmp/unicorn.sock /root/.rbenv/shims/bundle exec 'unicorn_rails -D -c /usr/share/redmine/config/unicorn.rb -E production'
試したこと
1.docker-compose.ymlのcommand行の調整
2.docker-compose.ymlでentrypointの追加
※詳細はコメントをご確認ください。いずれも動作しない状況です。
もうこの問題に数週間前から直面していますが、自動起動が出来ず苦しんでいます。
助けて頂けると幸いです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
項目 | バージョン等 |
---|---|
redmine | 5.0 |
nginxバージョン | nginx/1.22.0 (Ubuntu) |
コンテナ | koetaro/ubuntu-nginx-redmine |
ubuntuバージョン | ubuntu 22.10 |
※docker hubにアップしています。
検証中のハード環境はesxi 6.5の仮想OS:Ubuntu 22.04を使用しています。
回答3件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。