minimum2scp/magellan-tdiary image on Docker Hub
(TODO)
magellan-tdiary creates .htpasswd by environment variables:
TDIARY_BASIC_AUTH_USERNAME
(default:tdiary
)TDIARY_BASIC_AUTH_PASSWORD
(default:tdiary
)
magellan-tdiary CSRF protection is configured by environment variables:
TDIARY_CSRF_PROTECTION_METHOD
(default:2
)TDIARY_CSRF_PROTECTION_KEY
(default:FAKE_CSRF_PROTECTION_KEY
)TDIARY_CSRF_PROTECTION_ALLOWED_REFERER_REGEXP_FOR_UPDATE
(default is empty)
see tdiary.conf.sample, tdiary.conf.samle-en in https://github.com/tdiary/tdiary-core for details.
magellan-tdiary stores data into MySQL database using tdiary-io-rdb gem. MySQL connection is configured by environment variables:
MYSQL_HOST
(optional)MYSQL_PORT
(optional)MYSQL_DATABASE
(optional)MYSQL_USERNAME
(optional)MYSQL_PASSWORD
(optional)
When MYSQL_*
are not set, magellan-tdiary stores data into local file in /usr/src/app/data/
directory.
That means:
- The data will be inconsistent when 2 or more magellan-tdiary containers are running
- The data will be lost when magellan-tdiary containers stop
magellan-tdiary includes newrelic_rpm gem for application monitoring.
You can provide config options by environment variables
with the prefix NEW_RELIC_
, for example:
NEW_RELIC_LICENSE_KEY
(optional)NEW_RELIC_AGENT_ENABLED
(optional)NEW_RELIC_APP_NAME
(optional)
see https://docs.newrelic.com/docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration#Options for details.
magellan-tdiary includes rack-mini-profiler, flamegraph gem for profiling. You can configure rack-mini-profiler by environment vaiables:
RACK_MINI_PROFILER_ENABLED
(default:true
)
magellan-tdiary requires Basic Authentication to view rack-mini-profiler.
magellan-tdiary enables Ruby garbage collection instrumentation by environment variable:
RUBY_GC_PROFILER_ENABLED
(default:true
)
magellan-proxy is configured by environment variables:
TIMEZONE
(default:Asia/Tokyo
)
You can build magellan-tdiary with docker-compose:
% editor some-file # Edit what you want
% editor docker-compose.yml # Edit tag of minimum2scp/magellan-tdiary image if necessary
% docker-compose build tdiary
At first, if you want to use local build image, run:
% docker-compose build tdiary
Or pull image from Docker Hub:
% docker-compose pull tdiary
Then you can test magellan-tdiary with docker-compose:
% docker-compose up -d
Creating magellantdiary_db_1...
Creating magellantdiary_tdiary_1...
Creating magellantdiary_nginx_1...
% docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
magellantdiary_db_1 /entrypoint.sh mysqld Up 3306/tcp
magellantdiary_nginx_1 /opt/entrypoint nginx -g d ... Up 443/tcp, 80/tcp
magellantdiary_tdiary_1 /opt/magellan-tdiary/entry ... Up 80/tcp
% docker-compose scale tdiary=3
Creating and starting 2... done
Creating and starting 3... done
% docker-compose restart nginx
Restarting magellantdiary_nginx_1...
% docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
magellantdiary_db_1 /entrypoint.sh mysqld Up 3306/tcp
magellantdiary_nginx_1 /opt/entrypoint nginx -g d ... Up 443/tcp, 80/tcp
magellantdiary_tdiary_1 /opt/magellan-tdiary/entry ... Up 80/tcp
magellantdiary_tdiary_2 /opt/magellan-tdiary/entry ... Up 80/tcp
magellantdiary_tdiary_3 /opt/magellan-tdiary/entry ... Up 80/tcp
See docker-compose.yml for details.