sameersbn / docker-redmine Goto Github PK
View Code? Open in Web Editor NEWDocker Image for Redmine
Home Page: http://www.damagehead.com/docker-redmine/
License: MIT License
Docker Image for Redmine
Home Page: http://www.damagehead.com/docker-redmine/
License: MIT License
I set up redmine 2.6.0-1 using the init script to add the crontab for the recurring tasks plugin, but it's never actually getting run. I checked inside the container:
root@redmine:~# crontab -l -u redmine
15 */4 * * * cd /home/redmine/redmine && bundle exec rake redmine:recur_tasks RAILS_ENV=production >> log/cron_rake.log 2>&1
crond is running, but it doesn't seem to actually log anything anywhere, and there's no cron_rake.log created, nor are my tasks getting run. If I run the task manually, it works fine.
As a side note, the example cron for the recurring tasks plugin in your documentation is set to run at * */4 * * * which is once per minute for an hour, every 4 hours. I chose 15 */4 * * * for a more reasonable schedule.
Great image and documentation! Thanks for you effort.
One question though: Does this support linking with a mysql-only container using environment variables?
In the README, there is a reference to an "Advanced section" for running Redmine in production, but I can't find this section anywhere. Would be nice to know how to run the container in production
just build it...
addgroup: `/usr/sbin/groupadd -g 103 mysql' returned error code 10. Exiting.
dpkg: error processing /var/cache/apt/archives/mysql-server-5.5_5.5.38-0ubuntu0.12.04.1_amd64.deb (--unpack):
subprocess new pre-installation script returned error exit status 1
...
Errors were encountered while processing:
/var/cache/apt/archives/mysql-server-5.5_5.5.38-0ubuntu0.12.04.1_amd64.deb
Sub-process /usr/bin/dpkg returned an error code (1)
trying to change mysql-server to mysql-client (I use external base)
maddgroup: /usr/sbin/groupadd -g 103 ssh' returned error code 10. Exiting. mdpkg: error processing openssh-client (--configure): subprocess installed post-installation script returned error exit status 1 ... groupadd: failure while writing changes to /etc/group addgroup:
/usr/sbin/groupadd -g 103 _cvsadmin' returned error code 10. Exiting.
dpkg: error processing cvs (--configure):
subprocess installed post-installation script returned error exit status 1
...
groupadd: failure while writing changes to /etc/group
addgroup: `/usr/sbin/groupadd -g 103 memcache' returned error code 10. Exiting.
dpkg: error processing memcached (--configure):
subprocess installed post-installation script returned error exit status 1
...
Errors were encountered while processing:
openssh-client
cvs
memcached
Sub-process /usr/bin/dpkg returned an error code (1)
Hello,
while installing a recent image on ubuntu 14.04, I found out I couldn't open issues due to system error.
I couldn't see why, but with nsenter I was able to troubleshoot it, finding SMTP as the culprit.
We should either fix SMTP, or make SMTP disabled by default.
Another possible reason is that I have a tight firewall, but other images just worked fine in this regard. Or maybe is that I use a clean image with everything set to default?
Hi,
When I want to install the redmine_backlogs plugin, the installation need to build some Gem. But the container doesn't have the dev tools to do so.
How can I do the plugin installation?
here come the trace:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby2.1 extconf.rb
checking for main() in -lc... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby2.1
--with-gherkin_lexer_ar-dir
--without-gherkin_lexer_ar-dir
--with-gherkin_lexer_ar-include
--without-gherkin_lexer_ar-include=${gherkin_lexer_ar-dir}/include
--with-gherkin_lexer_ar-lib
--without-gherkin_lexer_ar-lib=${gherkin_lexer_ar-dir}/lib
--with-clib
--without-clib
/usr/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /usr/lib/ruby/2.1.0/mkmf.rb:541:in `try_link0'
from /usr/lib/ruby/2.1.0/mkmf.rb:556:in `try_link'
from /usr/lib/ruby/2.1.0/mkmf.rb:742:in `try_func'
from /usr/lib/ruby/2.1.0/mkmf.rb:973:in `block in have_library'
from /usr/lib/ruby/2.1.0/mkmf.rb:918:in `block in checking_for'
from /usr/lib/ruby/2.1.0/mkmf.rb:351:in `block (2 levels) in postpone'
from /usr/lib/ruby/2.1.0/mkmf.rb:321:in `open'
from /usr/lib/ruby/2.1.0/mkmf.rb:351:in `block in postpone'
from /usr/lib/ruby/2.1.0/mkmf.rb:321:in `open'
from /usr/lib/ruby/2.1.0/mkmf.rb:347:in `postpone'
from /usr/lib/ruby/2.1.0/mkmf.rb:917:in `checking_for'
from /usr/lib/ruby/2.1.0/mkmf.rb:968:in `have_library'
from extconf.rb:5:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/gherkin-2.12.2 for inspection.
Results logged to /home/redmine/redmine/vendor/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/gherkin-2.12.2/gem_make.out
An error occurred while installing gherkin (2.12.2), and Bundler cannot
continue.
Make sure that `gem install gherkin -v '2.12.2'` succeeds before bundling.
this is quick start shell command in readme
docker run --name=redmine -it --rm -p 10080:80 \
-v /var/run/docker.sock:/run/docker.sock \
-v $(which docker):/bin/docker \
sameersbn/redmine:2.6.0-1
container stopped after
Database connection details not specified.
Will try to spin up a new postgresql image with the name postgresql-redmine.
Please manually configure the database connection in production.
Starting up a new postgresql container...
I've make some changes to the docker-redmine container and commited changes to the new image to save my work under new tag. After starting this altered image I've noticed, that REDMINE_FETCH_COMMITS was duplicated in the crontab. And after second commit I actually got three same commands in the crontab...
I think it's reasonable to grep current crontab for the presence of the line which is going to be (re)added. Here is the way I've implemented it:
--- a/assets/init
+++ b/assets/init
@@ -428,14 +428,18 @@ if [ -d ${DATA_DIR}/themes ]; then
fi
# create a cronjob to periodically fetch commits
+REDMINE_CRONJOB_FILE=/tmp/cron.redmine
case "${REDMINE_FETCH_COMMITS}" in
hourly|daily|monthly)
set +e
- crontab -u redmine -l 2>/dev/null >/tmp/cron.redmine
+ crontab -u redmine -l 2>/dev/null >${REDMINE_CRONJOB_FILE}
set -e
- echo "@${REDMINE_FETCH_COMMITS} cd /home/redmine/redmine && ./script/rails runner \"Repository.fetch_changesets\" -e production >> log/cron_rake.log 2>&1" >>/tmp/cron.redmine
- crontab -u redmine /tmp/cron.redmine 2>/dev/null
- rm -rf /tmp/cron.redmine
+ REDMINE_FETCH_CRONJOB="@${REDMINE_FETCH_COMMITS} cd /home/redmine/redmine && ./script/rails runner \"Repository.fetch_changesets\" -e production >> log/cron_rake.log 2>&1"
+ if ! fgrep "${REDMINE_FETCH_CRONJOB}" ${REDMINE_CRONJOB_FILE} >/dev/null; then
+ echo "${REDMINE_FETCH_CRONJOB}" >>${REDMINE_CRONJOB_FILE}
+ crontab -u redmine ${REDMINE_CRONJOB_FILE} 2>/dev/null
+ fi
+ rm -f ${REDMINE_CRONJOB_FILE}
;;
esac
That should fix the problem.
the mail config is below
-e "SMTP_USER=[email protected]" -e "SMTP_PASS=PASSWORD"
when docker redmine is running, testing mail can not send, the default redmine mail setting has no tls attribute
it seems that redmine image need more tls plugin or disable gmail tls setting
I need the plugin Redmine mylyn connector (http://danmunn.github.io/redmine_mylyn_connector/). The page said this plugin needs libxml-ruby Gem. I put this plugin in /opt/redmine/data/plugins and do docker run command, the libxml-ruby can not auto install
the error msg is
An error occurred while installing libxml-ruby (2.7.0), and Bundler cannot continue.
Make sure that gem install libxml-ruby -v '2.7.0'
succeeds before bundling.
Hi guys,
I tried to launch this container on ubuntu 14.04, but it return an error page.
The only thing I did differently from the default, is -p 1680:80, to map the port of the container, because 80 is not free on my host.
Can anyone else confirm this?>
Even if I set -e SMTP_ENABLED=false -e SMTP_USER=
, I always end up with this config:
$ /bin/cat redmine/config/initializers/smtp_settings.rb
if Rails.env.production?
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "www.gmail.com",
:authentication => :login,
:enable_starttls_auto => true
}
end
Then, after doing things that send a notification mail (like creating an issue), I get an internal error because Redmine fails to send mail.
Hi, Sameer!
Just a suggestion - I came across http://jasonwilder.com/blog/2014/08/19/squashing-docker-images/ and his tool https://github.com/jwilder/docker-squash. By squashing image with the sequence:
docker save -o adlantic-latest.tar 2adf78665c7e
docker-squash --verbose -i adlantic-latest.tar -o squashed.tar -t adlantic/redmine:squash
docker load -i squashed.tar
I've got:
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
adlantic/redmine squash 69131321fdf0 4 hours ago 632.6 MB
adlantic/redmine local 2adf78665c7e 4 hours ago 661.1 MB
Dunno, would it make any sense for you.
▒▒8cbdf71a8e7f Virtual Size: 192.6 MB
▒▒e630be76d257 Virtual Size: 632.6 MB
▒ ▒▒377d75fdc1ac Virtual Size: 632.6 MB
▒ ▒▒cfa3478378e8 Virtual Size: 632.6 MB
▒ ▒▒c44d01d82931 Virtual Size: 632.6 MB
▒ ▒▒9421a7f4c053 Virtual Size: 632.6 MB
▒ ▒▒b4ca9c4ab71e Virtual Size: 632.6 MB
▒ ▒▒0f2e81fe0681 Virtual Size: 632.6 MB
▒ ▒▒0845f8d018f7 Virtual Size: 632.6 MB
▒ ▒▒cd4b4fdad1d1 Virtual Size: 632.6 MB
▒ ▒▒db0fd50fbe56 Virtual Size: 632.6 MB
▒ ▒▒69131321fdf0 Virtual Size: 632.6 MB Tags: adlantic/redmine:squash
▒▒c31865d83ea1 Virtual Size: 192.7 MB
▒▒1b2af7d5307a Virtual Size: 192.7 MB
▒▒311ec46308da Virtual Size: 192.8 MB
▒▒96e1c132acb3 Virtual Size: 194.9 MB
▒▒c3d5614fecc4 Virtual Size: 194.9 MB
▒▒75a9ec6cb3c6 Virtual Size: 194.9 MB
▒▒5dc5a7797214 Virtual Size: 194.9 MB
▒▒b17722c406a6 Virtual Size: 201.1 MB Tags: sameersbn/ubuntu:14.04.20141001
▒▒d9c3d78d368a Virtual Size: 201.1 MB
▒▒acae0763b0a3 Virtual Size: 543.8 MB
▒▒d1980eb8f049 Virtual Size: 543.8 MB
▒▒892bf2db3780 Virtual Size: 661 MB
▒▒ccdf2dc9af8e Virtual Size: 661 MB
▒▒61b05ca62a0c Virtual Size: 661 MB
▒▒f6ab9d6bc5f3 Virtual Size: 661.1 MB
▒▒bf36d3f0616a Virtual Size: 661.1 MB
▒▒5194e8d20990 Virtual Size: 661.1 MB
▒▒8c357e608fc9 Virtual Size: 661.1 MB
▒▒58a9997b683c Virtual Size: 661.1 MB
▒▒bbbf6cfa0e51 Virtual Size: 661.1 MB
▒▒2adf78665c7e Virtual Size: 661.1 MB Tags: adlantic/redmine:local
# docker history adlantic/redmine:local
IMAGE CREATED CREATED BY SIZE
2adf78665c7e 4 hours ago /bin/sh -c #(nop) CMD [app:start] 0 B
bbbf6cfa0e51 4 hours ago /bin/sh -c #(nop) ENTRYPOINT [/app/init] 0 B
58a9997b683c 4 hours ago /bin/sh -c #(nop) VOLUME [/var/log/redmine] 0 B
8c357e608fc9 4 hours ago /bin/sh -c #(nop) VOLUME [/home/redmine/data] 0 B
5194e8d20990 4 hours ago /bin/sh -c #(nop) EXPOSE map[443/tcp:{}] 0 B
bf36d3f0616a 4 hours ago /bin/sh -c #(nop) EXPOSE map[80/tcp:{}] 0 B
f6ab9d6bc5f3 4 hours ago /bin/sh -c chmod 755 /app/init 19.91 kB
61b05ca62a0c 4 hours ago /bin/sh -c #(nop) ADD file:b2ac5c8cb13d820914 19.91 kB
ccdf2dc9af8e 4 hours ago /bin/sh -c #(nop) ADD dir:e4c01b409ece3474987 10.6 kB
892bf2db3780 4 hours ago /bin/sh -c chmod 755 /app/setup/install && /a 117.2 MB
d1980eb8f049 4 hours ago /bin/sh -c #(nop) ADD dir:1758c79e006f05d72a8 4.783 kB
acae0763b0a3 4 hours ago /bin/sh -c apt-key adv --keyserver keyserver. 342.8 MB
d9c3d78d368a 4 hours ago /bin/sh -c #(nop) MAINTAINER sameer@damagehea 0 B
b17722c406a6 2 weeks ago /bin/sh -c echo "APT::Install-Recommends 0;" 6.137 MB
5dc5a7797214 2 weeks ago /bin/sh -c #(nop) ENV DEBIAN_FRONTEND=noninte 0 B
75a9ec6cb3c6 2 weeks ago /bin/sh -c #(nop) MAINTAINER sameer@damagehea 0 B
c3d5614fecc4 2 weeks ago /bin/sh -c #(nop) CMD [/bin/bash] 0 B
96e1c132acb3 2 weeks ago /bin/sh -c apt-get update && apt-get dist-upg 2.178 MB
311ec46308da 2 weeks ago /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/ 1.895 kB
1b2af7d5307a 2 weeks ago /bin/sh -c rm -rf /var/lib/apt/lists/* 0 B
c31865d83ea1 2 weeks ago /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic 194.5 kB
8cbdf71a8e7f 2 weeks ago /bin/sh -c #(nop) ADD file:c0f316fa0dcbdd4635 192.6 MB
511136ea3c5a 16 months ago 0 B
# docker history adlantic/redmine:squash
IMAGE CREATED CREATED BY SIZE
69131321fdf0 4 hours ago /bin/sh -c #(nop) CMD [app:start] 0 B
db0fd50fbe56 4 hours ago /bin/sh -c #(nop) ENTRYPOINT [/app/init] 0 B
cd4b4fdad1d1 4 hours ago /bin/sh -c #(nop) VOLUME [/var/log/redmine] 0 B
0845f8d018f7 4 hours ago /bin/sh -c #(nop) VOLUME [/home/redmine/data] 0 B
0f2e81fe0681 4 hours ago /bin/sh -c #(nop) EXPOSE map[443/tcp:{}] 0 B
b4ca9c4ab71e 4 hours ago /bin/sh -c #(nop) EXPOSE map[80/tcp:{}] 0 B
9421a7f4c053 4 hours ago /bin/sh -c #(nop) MAINTAINER sameer@damagehea 0 B
c44d01d82931 4 hours ago /bin/sh -c #(nop) ENV DEBIAN_FRONTEND=noninte 0 B
cfa3478378e8 4 hours ago /bin/sh -c #(nop) MAINTAINER sameer@damagehea 0 B
377d75fdc1ac 4 hours ago /bin/sh -c #(nop) CMD [/bin/bash] 0 B
e630be76d257 4 hours ago /bin/sh -c #(squash) from 8cbdf71a8e7f 440.1 MB
8cbdf71a8e7f 2 weeks ago /bin/sh -c #(nop) ADD file:c0f316fa0dcbdd4635 192.6 MB
511136ea3c5a 16 months ago 0 B
Based on the date string, sameersbn/debian:jessie.20140918, the image this release is based on, wouldn't have the fixes that protect against the shellshock bash vulnerability and its variants. Please update your base docker image to include the recent bash updates and re-release any images that depend on it.
Hi, @sameersbn!
Hope, this is the last on from me :) On startup of the container I see in the logs:
2014-10-21 22:51:26,625 WARN Included extra file "/etc/supervisor/conf.d/nginx.conf" during parsing
2014-10-21 22:51:26,625 WARN Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
2014-10-21 22:51:26,625 WARN Included extra file "/etc/supervisor/conf.d/unicorn.conf" during parsing
2014-10-21 22:51:27,119 INFO RPC interface 'supervisor' initialized
Possibly I'm just too quick, but when I'm trying to open the URL of the Redmine in the first minute or so I do get 502 Bad gateway
from nginx
. This seems to be a result of nginx
starting before unicorn
. Not a big deal again, but maybe explicit ordering in the startup sequence can help. Like naming config files 01-unicorn.conf
, 02-cron.conf,
03-nginx.conf`.
Hello,
This is a "Feature request"
Today i tried to place a dump from a production Redmine environment inside the Docker test mysql environment running on your created container, im working on a script with the redmine api and to quick test some aspects i want to load in the production database to see what happens if users already exists etc. I don't care about persistence for this database, its just a quick test run. But i can't seem to import the dataset because i do not have the mysql root password. I tried -u redmine -p password / -uroot -p etc etc and some of the password examples used in your advanced text, but with no result. I can off course start mysqladmin, or attach an external database... But maybe adding a default admin and password can get people up and running quick. Just a request to what i think is an improvement, let me know what you think.
Regards,
Rogier
With latest latest
it seems that REDMINE_HTTPS_HSTS_MAXAGE
was renamed into REDMINE_HTTPS_HSTS_MAX_AGE
in init
script. redmine-ssl
, as well as README.md
are still referring to REDMINE_HTTPS_HSTS_MAXAGE
.
Please, make them consistent :)
Hi!
I've to migrate a redmine cause of some issues on our current version and we discussed on maybe going for the docker way. Found your repo, tested, all is working good, good job! :)
Now I've a question.. as we (and probably everybody else) will use another nginx on the host for connecting to the container and publishing the content to the world, couldn't it be a bit better if we leave the gunicorns directly answering on the container instead of having that other nginx inside?
Thanks.
Hi,
after creating the image and running the container, redmine is working as expected. But when I make an new image, using "docker commit...", I get only "502 bad gateway" after running this new image.
In var/log/nginx/redmine_error.log, the error is:
2014/09/11 13:17:24 [error] 104#0: *5 connect() to unix:/home/redmine/redmine/tmp/sockets/redmine.socket failed (111: Connection refused) while connecting to upstream, client: ...
Thanks
After clone some plugin to /plugins dir and restart container the logs show this message:
Could not find gem 'rails (= 3.2.21) ruby' in the gems available on this machine.
Run bundle install
to install missing gems.
I already tried and retried rm tmp and these three plugins and the error are the same,
https://github.com/scrum2b/scrum2b
https://github.com/nsi-iff/kanban-plugin
https://github.com/nutso/redmine-plugin-recurring-tasks.git
Thanks for helping!
Memcached is recommended cachestore for redmine.
We can easy install memcached and memcache-client gem. Than run memcached by supervisor and put config/additional_environment.rb with this content:
config.gem 'memcache-client'
config.action_controller.perform_caching = true
config.cache_classes = true
config.cache_store = :mem_cache_store, "127.0.0.1:1121"
If you like the idea, then I can do it myself later.
If you take a look into unicorn.log you can see, that on startup it complains, that 'mysql2' and some other gems are mentioned more, than once in Gemfile. Error says that it may lead to the problems to the future. So, adding a guardian code before adding those gems to the Gemfile should help:
--- a/assets/setup/install
+++ b/assets/setup/install
@@ -36,8 +40,12 @@ cd ${INSTALL_DIR}
echo "${REDMINE_VERSION}" > ${INSTALL_DIR}/VERSION
# add support for mysql and postgresql databases
-echo 'gem "mysql2", "~> 0.3.11"' >> Gemfile
-echo 'gem "pg", ">= 0.11.0"' >> Gemfile
+if ! fgrep 'gem "mysql2"' Gemfile >/dev/null; then
+ echo 'gem "mysql2", "~> 0.3.11"' >> Gemfile
+fi
+if ! fgrep 'gem "pg"' Gemfile >/dev/null; then
+ echo 'gem "pg", ">= 0.11.0"' >> Gemfile
+fi
# add gems for app server and memcache support
echo 'gem "unicorn"' >> Gemfile
@@ -45,8 +53,12 @@ echo 'gem "dalli", "~> 2.7.0"' >> Gemfile
# following gems are added to fix some issues that are
# generally seen when installing gems from the cache
-echo 'gem "fastercsv", "~> 1.5.0"' >> Gemfile
-echo 'gem "yard"' >> Gemfile
+if ! fgrep 'gem "fastercsv"' Gemfile >/dev/null; then
+ echo 'gem "fastercsv", "~> 1.5.0"' >> Gemfile
+fi
+if ! fgrep 'gem "yard"' Gemfile >/dev/null; then
+ echo 'gem "yard"' >> Gemfile
+fi
# install gems, use cache if available
if [ -d "${GEM_CACHE_DIR}" ]; then
With svn+ssh access to remote repository we need to keep .ssh/ somewhere. The same applies to git, bzr keeps some configs in .bzrfile(?), svn keeps repository access configuration in .subversion/ and so on. With the docker changes in /home/redmine are not persistent, unless you clone your own container from docker-redmine with 'docker commit'. That's an option, of course, but then you lock yourself from further upgrades of the base image or you need to remember to backup those diffs somehow...
A better option would be to make volume out of /home/redmine rather than just /home/redmine/data. But that would break current setup, as /home/redmine/redmine should go somewhere else. Dunno, what would you think about such a move...
A less intrusive solution would be to put all the essential dot dirs/files inside /home/redmine/data and symlink them to the upper /home/redmine on startup. At least with .ssh/ that worked.
So, what do you think would be a better solution and would you like to implement it?
After restarting the host, my redmine installation is giving some errors, inviting to check the logs.
But how do I read them? Is there a way to run the container so that I can access the shell? Or maybe to add SSH access?
I was thinking about cloning the container rerunning with the /bin/bash command, and then start redmine manually.
Hi,
First of all, thanks for the great work on this image! Unfortunately I'm having a problem connecting to my mysql server on the host. Using 127.0.0.1 does not work, so I think I have to use a socket connection.
The problem is I don't know how to configure this using the environment variables.
Could you point me in the right direction?
Best regards,
Peter
I created the cert and exposed 80 and also 443, 80 is still working. Also using the RELATIVE_URL option and that is working.
This is the exact command:
docker run --name=redmine_cyphy -d -e 'REDMINE_HTTPS=true' -e 'REDMINE_RELATIVE_URL_ROOT=/redmine' --link mysql_cyphy:mysql -p 80:80 -p 443:443 -v /data/redmine/data:/home/redmine/data sameersbn/redmine:2.6.0-1
Although base image for redmine is very recent, still if I enter the container and issue 'apt-get update' I can see that there are already certain packages require an update. I understand, that eventually base will be upgraded and new image will get packages up-to-date, but while I'm rebuilding image from Dockerfile I'm installing the latest at the moment of the build additional packages to the base image. But still, packages, that were in the base image remain outdated.
I believe, it's reasonable to add additional line with 'apt-get -y dist-upgrade' in the RUN chain so resulting image will have all installed packages up-to-date.
I don't think charts plugin works with redmine 2.4.x. I don't see it doing any thing in my test installation.
Please let me know if it works for anyone of you, else it got's to go
If you ever tried to debug failing server you know, that it's very handy to have them in one place. Most of the docker-redmine logs are situated in /var/log, except, well, redmine logs themselves. It would be very handy to have them there as well, in /var/log/redmine/, for example. Altering all the references to log/ is not a trivial task, so I think the easiest way to solve this is to use symlink from log/ to /var/log/redmine/.
--- a/assets/setup/install
+++ b/assets/setup/install
@@ -22,6 +22,10 @@ passwd -d redmine
# create the data store
sudo -u redmine -H mkdir -p /home/redmine/data
+# create redmine log directory
+mkdir -p /var/log/redmine
+chown -R redmine:redmine /var/log/redmine
+
# install redmine, use local copy if available
mkdir -p ${INSTALL_DIR}
if [ -f ${SETUP_DIR}/redmine-${REDMINE_VERSION}.tar.gz ]; then
@@ -71,6 +83,10 @@ ln -sf ${DATA_DIR}/tmp/thumbnails tmp/thumbnails
# create link to tmp/secret_token.rb
ln -sf ${DATA_DIR}/tmp/secret_token.rb config/initializers/secret_token.rb
+# create link to the log directory
+rm -rf log
+ln -sf /var/log/redmine log
+
# create production log
sudo -u redmine -H touch log/production.log
There is a recurring task plugin, which I would like to use: https://github.com/teresan/redmine-plugin-recurring-tasks
Maybe it is even possible to provide guidelines / documentation on how to add plugins via a docker run bind mount? I don't know if that works at all, I am just spitballing here.
When running the docker with this command:
docker run -e DB_HOST=10.0.0.1 -e DB_NAME=redmine -e DB_USER=redmine -e DB_PASS=mypass -e DB_TYPE=mysql -v /tmp/log:/var/log/redmine --name=redmine -it --rm -p 10080:80 -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker sameersbn/redmine:2.6.0-1
It will stop responding to requests after a few requests. Retrying will eventually return the requested page. Adding -e UNICORN_WORKERS=12 helps a bit but will still throw errors in the nginx logs after a few requests (less than 12). The error I see in the logs is:
2014/12/10 15:32:26 [alert] 124#0: *37 readv() failed (13: Permission denied) while reading upstream, client: 10.0.0.10, server: , request: "GET / HTTP/1.1", upstream: "http://unix:/home/redmine/redmine/tmp/sockets/redmine.socket:/", host: "10.0.0.1:10080"
The requests were made using curl and even with 12 workers it will return 'transfer closed with outstanding read data remaining'.
hi,
You say: "However in this case, the data stored in the mysql database will be lost if the container is stopped/deleted"
I am new to docker, but I thought that when you stop a container all data is written to the container layer, and when you start that container it will have the same state and data as when it was stopped.
Am I missing something here?
I'm facing a very strange issue running this container on Docker version 0.8.0, build cc3a8c8.
Docker logs gives me this
User: root Password: xohGahghio1A
sed: can't read config/database.yml: Permission denied
sed: can't read config/database.yml: Permission denied
sed: can't read config/database.yml: Permission denied
sed: can't read config/database.yml: Permission denied
sed: can't read config/database.yml: Permission denied
sed: can't read config/database.yml: Permission denied
memcached: stopped
memcached: updated process group
memcached: started
sed: can't read config/additional_environment.rb: Permission denied
mv: accessing `plugins-1': Permission denied
rake aborted!
Permission denied - /redmine
(See full trace by running task with --trace)
rake aborted!
Permission denied - /redmine
(See full trace by running task with --trace)
mv: accessing `plugins': Permission denied
rake aborted!
Permission denied - /redmine
(See full trace by running task with --trace)
rake aborted!
Permission denied - /redmine
(See full trace by running task with --trace)
rake aborted!
Permission denied - /redmine
(See full trace by running task with --trace)
rake aborted!
Permission denied - /redmine
(See full trace by running task with --trace)
touch: cannot touch `tmp/restart.txt': Permission denied
--2014-03-19 08:58:27-- http://localhost/
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:80... failed: Connection refused.
Connecting to localhost (localhost)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2014-03-19 08:58:27 ERROR 403: Forbidden.
redmine:80 127.0.0.1 - - [19/Mar/2014:08:58:27 +0000] "GET / HTTP/1.1" 403 517 "-" "Wget/1.13.4 (linux-gnu)"
When I ssh into the container and try to access the /redmine directory with root all is fine but not for its owner www-data.
[root@redmine ~]# cd /
[root@redmine /]# ls -l | grep redmine
drwxr-xr-x 34 www-data www-data 4096 Mar 19 08:58 redmine
[root@redmine /]# ls -l redmine/
total 92
-rw-rw-r-- 1 www-data www-data 240 Mar 2 11:28 CONTRIBUTING.md
-rw-rw-r-- 1 www-data www-data 3532 Mar 19 08:56 Gemfile
-rw-r--r-- 1 www-data www-data 3856 Mar 19 08:57 Gemfile.lock
-rw-rw-r-- 1 www-data www-data 205 Mar 2 11:28 README.rdoc
-rw-rw-r-- 1 www-data www-data 275 Mar 2 11:28 Rakefile
drwxrwxr-x 12 www-data www-data 4096 Mar 19 08:58 app
drwxrwxr-x 8 www-data www-data 4096 Mar 19 08:58 config
-rw-rw-r-- 1 www-data www-data 160 Mar 2 11:28 config.ru
drwxrwxr-x 4 www-data www-data 4096 Mar 19 08:58 db
drwxrwxr-x 2 www-data www-data 4096 Mar 19 08:58 doc
drwxrwxr-x 8 www-data www-data 4096 Mar 19 08:58 extra
drwxr-xr-x 2 www-data www-data 4096 Mar 19 08:07 files
drwxrwxr-x 14 www-data www-data 4096 Mar 19 08:58 lib
drwxr-xr-x 2 www-data www-data 4096 Mar 19 08:58 log
drwxrwxr-x 30 www-data www-data 4096 Mar 19 08:58 plugins
drwxrwxr-x 14 www-data www-data 4096 Mar 19 08:58 public
-rwxr-xr-x 1 www-data www-data 5141 Mar 19 08:53 redmine
drwxrwxr-x 2 www-data www-data 4096 Mar 19 08:58 script
drwxr-x--- 9 www-data www-data 4096 Mar 19 08:58 setup
drwxrwxr-x 16 www-data www-data 4096 Mar 19 08:58 test
drwxrwxrwt 14 www-data www-data 4096 Mar 19 08:58 tmp
drwxrwxr-x 4 www-data www-data 4096 Mar 19 08:58 vendor
[root@redmine /]# sudo -u www-data -H ls redmine/
ls: cannot open directory redmine/: Permission denied
[root@redmine /]# su - www-data
$ cd /
$ ls -l | grep redmine
drwxr-xr-x 34 www-data www-data 4096 Mar 19 08:58 redmine
$ ls redmine/
ls: cannot open directory redmine/: Permission denied
$ cd redmine
-su: 3: cd: can't cd to redmine
The permissions on the directory look good, www-data should be able to read and cd into /redmine.
Comments much appreciated!
When I attempt to start a container instance, the following error is returned:
anapsix@test:~$ docker run --name=redmine -it --rm -p 10080:80 -e DB_USER=redmine -e DB_PASS=password -e DB_HOST=172.17.0.4 --link mysql:mysql sameersbn/redmine:latest
sudo: unable to execute /bin/cp: Permission denied
I need to run internal sendmail because i hate gmail they always block and discuss with me my ips and all that i simply need working mail and would love that without setting up postfix
hi. i just wanted to try the redmine container, using the provided db - i know i'm warned - and i got the following error :
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''show', 'projects', 'label_overview', 1, 0, 0, 100)' at line 1: INSERT INTO `permissions` (`action`, `controller`, `description`, `is_public`, `mail_enabled`, `mail_option`, `sort`) VALUES ('show', 'projects', 'label_overview', 1, 0, 0, 100)/home/redmine/redmine/vendor/bundle/ruby/2.1.0/gems/activerecord-3.2.19/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `query'
Subscribe to this issue to get notified about project announcements.
This is mainly created so that you can keep up with the changes in the application stack.
Please do not use this thread to report issues.
With the docker-entry I find it's easy and handy to access container to peek log files and check/tweak some configuration parameters. Sometimes I need to check options or other help information for the installed packages within container. Hence I try to access manpages for that packages within container, but 'man' command isn't available :(
I can imagine, that it's not installed to keep image smaller, but then - the whole bunch of manpages in /usr/share/man/* are actually there, together with /usr/share/doc/*. So, if the priority is saving space, taken by the image its worth deleting content of those directories(together with /etc/alternatives/).
Otherwise, if they are there already it's handy to be able to access those manpages and add 'man-db' package to the image.
Actually, it's possibly better to add this to the parent image, sameersbn/ubuntu and/or sameersbn/debian, as those alreasy have some manpages.
Hi,
I've taken a peek on the latest image available, and I don't see any plugin to enable git repository hosting.
Any suggestions?
Would it be better to put arbitrary volumes under fig.yml?
Hi,
Great work on the docker images.
There is a quick suggestion for improvement, only a minor, on my part.
In your Quickstart there is something missing, currently its:
Quick Start
Run the redmine image
REDMINE=$(sudo docker run -d redmine)
REDMINE_IP=$(sudo docker inspect $REDMINE | grep IPAddres | awk -F'"' '{print $4}')
This will generate this error:
REDMINE=$(sudo docker run -d redmine)Unable to find image 'redmine' (tag: latest) locally
Pulling repository redmine
2014/01/13 17:29:02 HTTP code: 404
It should be:
Quick Start
Run the redmine image
REDMINE=$(sudo docker run -d sameersbn/redmine)
REDMINE_IP=$(sudo docker inspect $REDMINE | grep IPAddres | awk -F'"' '{print $4}')
As i said, something minor. 👍 Thanks for the docker-redmine environment!
Hi,
I followed your instructions but I get errors:
any idea what is wrong?
tx
Ruby (Rack) application could not be started
These are the possible causes:
There may be a syntax error in the application's code. Please check for such errors and fix them.
A required library may not installed. Please install all libraries that this application requires.
The application may not be properly configured. Please check whether all configuration files are written correctly, fix any incorrect configurations, and restart this application.
A service that the application relies on (such as the database server or the Ferret search engine server) may not have been started. Please start that service.
Further information about the error may have been written to the application's log file. Please check it in order to analyse the problem.
Error message:
(eval):2: syntax error, unexpected '}', expecting tASSOC config.action_controller.perform_caching = {{ENABLE_CACHE}} ^
Exception class:
SyntaxError
Application root:
/redmine
Since the commits from Dec 18, 2014 the plugins directory will be created and populated, but the plugins won' t get activated in redmine anymore. The version from Dec 9, 2014 works fine.
Hi!
svn and git(and I guess, some other SCMs) have ability to access repositories via ssh. We are using svn+ssh schema with passwordless ssh key to access repositories history and files.
Please, add 'openssh-client' to the list of installed packages in the Dockerfile.
when I'm running this image, I got a err report showing that the database connection is not specified...
$ docker run --name=redmine -it --rm -p 10080:80 \
-v /var/run/docker.sock:/run/docker.sock
-v $(which docker):/bin/docker
sameersbn/redmine:latest
Database connection details not specified.
Will try to spin up a new postgresql image with the name postgresql-redmine.
Please manually configure the database connection in production.
Starting up a new postgresql container...
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e3fa7344fe1 training/webapp:latest "/bin/bash" About an hour ago Up About an hour 5000/tcp compassionate_goodall
cd4a36bfc173 training/webapp:latest "python app.py" 2 hours ago Up 2 hours 0.0.0.0:49155->5000/tcp web
cd4795ce7094 mongo:2 "/entrypoint.sh mong 2 hours ago Up About an hour 27017/tcp db
Hi! I'm running a host with docker installed and a separate MariaDB (== MySQL) instance running for other stuff on that server already, too. I tried attaching Redmine to it and this seems to work, but the service doesn't show up:
docker run --name=redmine -it --rm -e "DB_HOST=lambda" -e "DB_NAME=redmine_production" -e "DB_USER=redmine" -e "DB_PASS=r3dm1n3yourself!" -e "DB_TYPE=mysql" -v /scratch/redmine-data:/home/redmine/data sameersbn/redmine
2014-10-22 12:18:32,660 CRIT Supervisor running as root (no user in config file)
2014-10-22 12:18:32,660 WARN Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
2014-10-22 12:18:32,660 WARN Included extra file "/etc/supervisor/conf.d/nginx.conf" during parsing
2014-10-22 12:18:32,660 WARN Included extra file "/etc/supervisor/conf.d/unicorn.conf" during parsing
2014-10-22 12:18:32,769 INFO RPC interface 'supervisor' initialized
2014-10-22 12:18:32,770 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2014-10-22 12:18:32,770 INFO supervisord started with pid 1
2014-10-22 12:18:33,773 INFO spawned: 'cron' with pid 79
2014-10-22 12:18:33,776 INFO spawned: 'nginx' with pid 80
2014-10-22 12:18:33,779 INFO spawned: 'unicorn' with pid 81
2014-10-22 12:18:35,243 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2014-10-22 12:18:35,244 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2014-10-22 12:18:35,244 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
^C2014-10-22 14:01:01,702 WARN received SIGINT indicating exit request
2014-10-22 14:01:01,703 INFO waiting for cron, nginx, unicorn to die
2014-10-22 14:01:02,074 INFO stopped: unicorn (exit status 0)
2014-10-22 14:01:02,081 INFO stopped: nginx (exit status 0)
2014-10-22 14:01:02,083 INFO stopped: cron (terminated by SIGTERM)
[peltzer@lambda ~]$ docker run --name=redmine -it --rm -e "DB_HOST=lambda" -e "DB_NAME=redmine_production" -e "DB_USER=redmine" -e "DB_PASS=password" -e "DB_TYPE=mysql" -e 'REDMINE_RELATIVE_URL_ROOT=/redmine' -v /scratch/redmine-data:/home/redmine/data sameersbn/redmine
2014-10-22 14:01:40,197 CRIT Supervisor running as root (no user in config file)
2014-10-22 14:01:40,198 WARN Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
2014-10-22 14:01:40,198 WARN Included extra file "/etc/supervisor/conf.d/nginx.conf" during parsing
2014-10-22 14:01:40,198 WARN Included extra file "/etc/supervisor/conf.d/unicorn.conf" during parsing
2014-10-22 14:01:40,307 INFO RPC interface 'supervisor' initialized
2014-10-22 14:01:40,307 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2014-10-22 14:01:40,308 INFO supervisord started with pid 1
2014-10-22 14:01:41,311 INFO spawned: 'cron' with pid 87
2014-10-22 14:01:41,314 INFO spawned: 'nginx' with pid 88
2014-10-22 14:01:41,317 INFO spawned: 'unicorn' with pid 89
2014-10-22 14:01:42,782 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2014-10-22 14:01:42,782 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2014-10-22 14:01:42,782 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
I'm kind of curious whats going on. Do I have to configure stuff on the server itself too?
hi,
i followed your instructions, but
redmine gives errors in the browser:
any idea what's wrong?
Ruby (Rack) application could not be started
These are the possible causes:
There may be a syntax error in the application's code. Please check for such errors and fix them.
A required library may not installed. Please install all libraries that this application requires.
The application may not be properly configured. Please check whether all configuration files are written correctly, fix any incorrect configurations, and restart this application.
A service that the application relies on (such as the database server or the Ferret search engine server) may not have been started. Please start that service.
Further information about the error may have been written to the application's log file. Please check it in order to analyse the problem.
Error message:
(eval):2: syntax error, unexpected '}', expecting tASSOC config.action_controller.perform_caching = {{ENABLE_CACHE}} ^
Exception class:
SyntaxError
Application root:
/redmine
After commiting altered version of the container one of the side effects of such an operation is that socket files are stored as plan files in the diff. One of such files is tmp/unicorn.socket, which prevents unicorn from starting up, as server sees it's not a socket and fails.
The easiest fix to that is to add a clean up into the appStart() function:
--- a/assets/init
+++ b/assets/init
@@ -443,6 +447,10 @@ esac
chown -R redmine:redmine ${DATA_DIR}/tmp/
appStart () {
+ # clear pids and sockets
+ rm -f /home/redmine/redmine/tmp/sockets/* /home/redmine/redmine/tmp/pids/*
+ #sudo -u redmine -H bundle exec rake tmp:pids:clear RAILS_ENV=production >/dev/null
+ #sudo -u redmine -H bundle exec rake tmp:sockets:clear RAILS_ENV=production >/dev/null
# start supervisord
exec /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
}
The suggested documentation for creating a cron entry says to set up a script at plugins/init. Every time the container is restarted, the script is run, which causes the example script to stack an additional cron job into the crontab. Running the recurring tasks cron many times at once causes a lot of duplicate tasks.
Presumably the correct options are to either make it so plugins/init only runs at initial configuration or to make a suggested script that doesn't insert a new cron if there's an existing entry.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.