Public Repository

Last pushed: 13 hours ago
Short Description
Docker image for OpenProject Community Edition
Full Description

There are the following tags:

  • openproject/community:7 - The latest stable version of OpenProject's Community Edition.
  • openproject/community:7.0 - The latest build of the current release branch. This is not stable. As in this includes commits towards the next stable release currently being developed.
Docker Pull Command

Comments (6)
9 months ago

Openproject is pretty good, but this container needs some better defaults. First off, the tags go against basic POLA. Versions with more components are supposed to be more tied down ("static" as people like to call it), whereas fewer components should really mean a more rolling release (latest in that LTS branch, for instance). But they reverse it in their "6<->stable & 6.0<->rolling" mapping, which is just weird. A couple of projects that do ir right are the linux kernel and postgres, for example, just so you know I'm not making this up. Thankfully, the "latest" tag finally works! (I can only hope it means what I think it means...)

Next off, session tokens aren't stored durably by default. So restarts cause users to re-login, which is a completely unnecessary pain for end users. Instead, they store it only on memcached, which is a bad idea in so many ways that even memcached guys have a very beefy item in their own FAQ advising against it.

Speaking of durability, never trust a container with a self-hosted database - it harms monitoring, backups, resources configuration - everything. Always use your own database outside of app containers. The database can be a container dedicated for that, sure. I'm just saying that an app container should bring only the app and connection points to the outside, not a dozen services plus the kitchen sink.

So to review: I like openproject, but it needs better defaults. This is the errata I propose for any user out there (docker-compose v2 syntax, because that's what I have in hand):

  DATABASE_URL: 'postgresql:///openproject?user=openproject'
  SESSION_STORE: 'active_record_store'
  - '/var/log/openproject:/var/log/supervisor:Z'
  - '/var/db/openproject:/var/db/openproject:Z'
  - '/run/postgresql:/run/postgresql:Z'

The "db" volume is actually only used to store uploaded files. The "lib" volume suggested by the container was for the bundled database, which is a bad idea in the first place, so don't even map it. These two have pretty bad names by default, I know...

And to use a trusted unix socket connection for postgres, put this in your pg_hba.conf: "local openproject openproject trust" The database must already exist, owned by the openproject user, who does not need any permissions other than login.

Much saner. :-D

10 months ago

docker pull openproject/community

results in:

Tag latest not found in repository

Any particular reason for this ?

a year ago

The docker-compose version doesn't seem to work. When building the image it hangs at

Building worker
Step 1 : FROM ruby:2.1
Step 7 : RUN gem install bundler --version "${BUNDLER_VERSION}"
 ---> Running in cc752c7df5d2
a year ago

@tobiaschochguertel @gruentee If you do a docker exec -it <container-id> bash you will land inside /usr/src/app there is a Dockerfile in there. I hope thats the file you are looking for.

a year ago

Yeah, indeed, that'd be great!

a year ago

Can we see the Dockerfile or be able to fork it?