--- http_interactions: - request: method: get uri: https://rogue-scholar.org/api/posts/5bb66e92-5cb9-4659-8aca-20e486b695c9 body: encoding: UTF-8 string: '' headers: Connection: - close Host: - rogue-scholar.org User-Agent: - http.rb/5.1.1 response: status: code: 200 message: OK headers: Age: - '0' Cache-Control: - public, max-age=0, must-revalidate Content-Length: - '6918' Content-Type: - application/json; charset=utf-8 Date: - Mon, 05 Jun 2023 08:32:18 GMT Etag: - '"9ujegqu4sc5c5"' Server: - Vercel Strict-Transport-Security: - max-age=63072000 X-Matched-Path: - "/api/posts/[slug]" X-Vercel-Cache: - MISS X-Vercel-Id: - fra1::iad1::c4p7x-1685953938405-740ca131cc87 Connection: - close body: encoding: UTF-8 string: '{"id":"https://doi.org/10.53731/4nwxn-frt36","uuid":"5bb66e92-5cb9-4659-8aca-20e486b695c9","url":"https://blog.front-matter.io/posts/does-it-compose/","title":"Does it compose?","summary":"One question I have increasingly asked myself in the past few years. Meaning Can I run this open source software using Docker containers and a Docker Compose file?As the Docker project turned ten this...","date_published":"2023-05-16T11:36:56Z","date_modified":"2023-05-16T11:36:56Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin Fenner"}],"image":"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
One question I have increasingly asked myself in the past few years. Meaning
Can I run this open source software using Docker containers and a Docker Compose file?
As the Docker project turned
ten this spring, it has become standard practice to distribute open source
software via Docker images and to provide a Docker
Compose file to run the software together with other dependencies. The
Awesome Compose
project has collected many examples, and all you need is a docker-compose.yml
file
and a recent installation of Docker, e.g. Docker
Desktop. Be aware that Docker Compose has evolved over the years. It started
out as a dedicated Python application but was later integrated into the Docker
application (written in Go) as Compose V2.
Docker and Docker Compose allow you to run pretty complex applications without first addressing a long list of requirements (which might conflict with other software you have installed), or needing a long and complex build step where many things can go wrong. For example a self-hosted instance of Supabase (a hosted Postgres database with additional features) that I installed last week following these instructions.
An important open source project that I am involved in is InvenioRDM, the turn-key research data management repository. InvenioRDM started in 2019, with a first production-suitable version in August 2021, and the next major goal is to have the large and popular Zenodo repository running on top of InvenioRDM. Zenodo turned ten last week, a few weeks after Docker. Interestingly, my personal tenth anniversary was last year in May as I became a full-time software developer and left academic medicine as a medical doctor treating cancer patients in May 2012.
Unfortunately,
InvenioRDM \"doesn''t compose\" yet. It is very close, but there are no ready-made
Docker images to download, and the installation
instructions start with installing a Python command-line tool (invenio-cli).
So if you have 1-2 hours to play with InvenioRDM and get a first impression,
there is no official solution from the InvenioRDM project yet. For this reason,
I started the docker-invenio-rdm
repository on Github. It contains a Docker Compose file that uses pre-built
Docker images, and using that file with a docker compose up
command
on your local computer should give you a running InvenioRDM within 15 minutes:
I started this recently and obviously want to move forward in two directions:
But of course, Docker Compose is not the answer to all questions regarding running Docker-based infrastructure. For production environments, most people shy away from using Docker Compose. The reasons for that and the alternatives will be the topic of a future blog post (spoiler: there is exciting news).
Docker Compose also needs more work to be set up correctly for development environments. It is a common practice and a workflow I used while working at DataCite (where we launched Docker-based infrastructure in 2016), but for now, the easiest way to set up InvenioRDM development environments is using the invenio-cli tool with a local development environment.
Please reach out to me with feedback on running Docker Compose for InvenioRDM (use the discussions feature in the GitHub repo), or if you have questions about running InvenioRDM in production.
","tags":["News"],"language":"en","blog_id":"f0m0e38","blog":{"id":"f0m0e38","title":"Front Matter","language":"en","favicon":"https://blog.front-matter.io/favicon.png","feed_url":"https://blog.front-matter.io/atom/","home_page_url":"https://blog.front-matter.io/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Engineering and Technology"}}' recorded_at: Mon, 05 Jun 2023 08:32:18 GMT recorded_with: VCR 6.1.0