Commit Graph

15 Commits

Author SHA1 Message Date
Judith Roth cee1aa6ce0 Avoid creation of unused containers 2026-05-26 18:07:04 +02:00
Tomas Hykel 43007349db properly pass multi-word arguments to commands 2026-04-26 18:32:57 +02:00
Tomas Hykel 318728a677 Add bin/compose restart 2026-04-21 17:06:38 +02:00
Tomas Hykel 6592137d0c dev: Make bin/compose pick up compose override 2026-04-21 17:03:51 +02:00
Markus Kahl da1a30bd8d use compose exec variable 2023-04-17 14:57:51 +02:00
Markus Kahl a4f488c986 fix docker dev quickstart 2023-04-17 12:15:38 +02:00
Christophe Bliard 8bcbf705b2 Use one of docker-compose/docker compose (#11889) 2023-01-09 10:58:59 +00:00
Patrick Helm 5810190995 Speed up bin/compose setup significantly (#9404)
With the proposed changes the time required to run `./bin/compose setup`
is being reduced from ~18 minutes down to ~7 minutes on my machine.
In addition a workaround is applied to reduce the size of the images.

== Changes

=== Speed-Up `bundle install`

The time spent withing `bundle install` takes a significant amount time
during the `./bin/compose setup`.
We could make use of two improvements, which both allows us to
utitlize multiple CPU cures:

* Make use of the bundle `--jobs` argument
* Make use of the lesser known/used `MAKE` environment variable

A significant amount of time spent during `bundle install` is actually
compiling C-extensions, that's why the usage of the `MAKE` variable will
drastically improve performence.

=== `useradd --no-log-init`

Unfortunately there is a nasty bug when running `useradd` for a huge
`uid`, which could result in excessive image sizes. See attached links
for more information.

=== BuildKit

BuildKit is the default builder toolkit for Docker on Windows and
DockerDesktop on Macs. Using BuildKit will greatly improve performance
when building docker images.

== Links

=== Speed-Up `bundle install`

* [One Weird Trick That Will Speed Up Your Bundle Install](https://build.betterup.com/one-weird-trick-that-will-speed-up-your-bundle-install/)

=== BuildKit

* [Build images with BuildKit](https://docs.docker.com/develop/develop-images/build_enhancements/)
* [Faster builds in Docker Compose 1.25.1 thanks to BuildKit Support](https://www.docker.com/blog/faster-builds-in-compose-thanks-to-buildkit-support/)

=== `useradd --no-log-init`

* Best practices for writing Dockerfiles: [User](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user)
* golang/co: [archive/tar: add support for writing tar containing sparse files](https://github.com/golang/go/issues/13548)
2021-07-13 16:01:59 +02:00
Markus Kahl c375646dc0 docker dev and test setup fixes (#9135)
* docker dev and test setup fixes

* added missing >

* include test instructions in quickstart

* fixed typo

Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>

* removed obsolete comment

Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>

* amendments

Co-authored-by: Benjamin Bädorf <b.baedorf@openproject.com>
Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>
2021-04-06 13:35:32 +01:00
luz paz 3683042c9b Fix typos in user facing and non-user facing code
Found via `codespell v2.1.dev0`
2021-01-24 15:08:21 +01:00
Markus Kahl cc3a43ec70 make sure to remove dangling server.pid; remove one-off containers 2020-12-03 13:15:20 +00:00
Markus Kahl be2c5ed347 Made docker dev setup more accessible, added Quickstart to docs. 2020-11-27 14:07:58 +00:00
Benjamin Bädorf 5f45ee07ab Move development docker-compose file to the main directory (#8798)
* Move development docker-compose file to the main directory

This requires us to move some other files around, like the pullpreview and example docker-compose file for production
setups. This commit also does some housekeeping, like removing some old files and deduping configuration.

* Updated to selenium grid

* Fix in-Docker Selenium tests

The Selenium tests now run inside a Docker Chrome Container. Backwards compatability with non-docker setups is not
guaranteed, though it should not be hard to implement with a couple of small fixes.

* Updated docker development documentation

* Improved test timings, changed the documentation

* Updated docker testing again

* Run npm in the frontend directory

* Really run npm in the frontend directory

* Also run npm in frontend when setting up travis cache

* Change directory for one command only

* Change default test driver name

* CI test change fixes

* Fixed syntax error

* Added dev check

* Trying to fix firefox resizing

* Trying to get tests running

* Stop resizing firefox

* Fixed apple icon spec

* fix host in url helpers for omniauth spec

* Fix omniauth specs

* Fix docs

* Small fixes to docker tests

* Added package.json back in

* Change env variables

Co-authored-by: Markus Kahl <machisuji@gmail.com>
2020-11-12 14:05:03 +00:00
Benjamin Bädorf a8dfb55345 Updated local development docker setup
There are now separate containers for testing purposes, and the frontend container is a node-only image. Containers run
with a user that has the current user id and gid, making sure that any files that are installed by bundler or npm are
user-owned.

Selenium tests can be ran, but not all of them work yet.
2020-10-05 15:04:33 +02:00
Markus Kahl 5c07f7bd95 docker-based dev environment 2020-03-30 14:50:48 +01:00