[Evergreen-dev] DEV docker image new(s)

Blake Graham-Henderson blake at mobiusconsortium.org
Thu May 2 15:11:40 EDT 2024


All,

Being on the 3.13 release team got me testing more patches than ever! I 
ended up enhancing our DEV docker container to facilitate the testing. 
And I know at least 2 or 3 of you all are using this.

== Changelog ==

With these new changes we can:

1. Hot swap the database by editing a text file and saving it.
2. fm_IDL.xml is now updated when the Evergreen stack is restarted.
3. Quicker response time when indicating that you want the services 
restarted.
4. Non-snap Firefox available for running nightwatch tests on the 22.04 
image.
5. Quicker boot times due to using standard concerto set instead of 
enhanced on boot, but you can switch to enhanced using db_control.txt 
(see below).
6. redis container is now using PostgreSQL 15 with the jit_above_cost tweak.

I updated the README here:

https://hub.docker.com/r/mobiusoffice/evergreen-ils

to include the details on how to use the db_control.txt file.

Other detailed setup documentation lives here:
https://wiki.evergreen-ils.org/doku.php?id=newdevs:testserver

== Hot Swap Database detail ==

The hot swap database feature makes it so that you can test a given 
patch to see if the database can be built. For example edit the file to 
look like this:

evergreen standard *
evergreen_enhanced enhanced
lp2039609 enhanced

After saving the file, the container will create a database named 
"lp2039609" and install the "enhanced" concerto dataset. You can watch 
the output of the build process by viewing the file "db_switch.log"

If you see that it built properly, then you can edit the file to look 
like this:

evergreen standard
evergreen_enhanced enhanced
lp2039609 enhanced *

The asterisks indicates that's the database that you would like 
Evergreen to be hooked up to. A few seconds later, the container will 
reconfigure /openils/conf/opensrf.xml and restart the stack.


== Shelling into the container ==

You can still use the linux shell if you need to make more granular 
tweaks to the server. This command will drop you into the shell:

docker exec -it <containerID> bash

the containerID can be discovered with:

docker ps --format '{{.ID}}'

or the all-in-one command:

docker exec -it $(docker ps --format '{{.ID}}') bash


== How to download the latest image ==

If you've already downloaded the docker image, you will need to download 
the new one with this command:

docker pull mobiusoffice/evergreen-ils:dev
and the redis flavor:
docker pull mobiusoffice/evergreen-ils:dev-redis


== Build your own and contribute to the project ==

Building these images is done from a git repo:

https://github.com/mcoia/eg-docker


To build a local container from the repo:

git clone https://github.com/mcoia/eg-docker.git
cd eg-docker/generic-dockerhub-dev
docker build --add-host public.localhost:127.0.1.2 --add-host 
public:127.0.1.2 --add-host private.localhost:127.0.1.3 --add-host 
private:127.0.1.3 . --no-cache

wait 15 minutes or so

And the result will be a new local image. Which you can see with this 
command:

docker images


Feedback is very welcome! Happy testing!

-- 
-Blake-
Conducting Magic
Will consume any data format
MOBIUS



More information about the Evergreen-dev mailing list