[Evergreen-general] How to make changes to eg_vhost.conf in the Docker container?

Vaclav Jansa vaclav.jansa at gmail.com
Mon Aug 14 16:40:58 EDT 2023


Hello Blake,
thank you for all your inputs.

I started today from scratch (to be sure).
generic-dockerhub is used (again) and all recommended edits are added to
vars and Dockerfile. Issue still persists.

So here is time for some tee and ansible check

But from quick check is the problem in missing/not progressing chown.
Everything is owned by root
# ll /openils
total 32
drwxr-xr-x  8 root root 4096 Aug 14 16:06 ./
drwxr-xr-x  1 root root 4096 Aug 14 16:18 ../
drwxr-xr-x  2 root root 4096 Aug 14 16:06 bin/
drwxr-xr-x  2 root root 4096 Aug 14 16:10 conf/
drwxr-xr-x  4 root root 4096 Aug 14 16:06 include/
drwxr-xr-x  3 root root 4096 Aug 14 16:06 lib/
drwxr-xr-x  4 root root 4096 Aug 14 16:06 share/
drwxr-xr-x 12 root root 4096 Aug 14 16:06 var/

But autogen task is running with opensrf

 - name: Run autogen
    become: true
    become_user: opensrf
    environment:
      PATH: "{{ ansible_env.PATH }}:{{openils_path}}/bin"
    shell:  export PATH=$PATH:{{openils_path}}/bin &&
{{openils_path}}/bin/autogen.sh -u

I will try to repair it tomorrow.

Best regards

Vaclav


On Sun, Aug 13, 2023 at 10:36 PM Blake Henderson <blake at mobiusconsortium.org>
wrote:

> Vaclav,
>
> Which docker folder are you building?
>
> generic-dockerhub
> or
> generic-dockerhub-dev
>
> You should be building your container image from:
> generic-dockerhub
>
> (not generic-dockerhub-dev)
>
> Do you have anything defined in vars.yml for "shared_jackets_folder"? You
> shouldn't.
>
> Make sure you pull the most recent commit to the repository:
>
> cd eg-docker
> # if you've made changes to the repository, let's make sure everything is
> back to default:
> git clean -x -f -d
>
> git pull
>
> Check the vars.yml, make sure you have:
> ubuntu_version: focal
> evergreen_version: 3.11.1
> add_evergreen_language_support: no
>
>
> For troubleshooting, you can edit the Dockerfile such that it doesn't
> start Evergreen when the image runs:
>
> vi Dockerfile
>
> Comment out this line:
>
> # ENTRYPOINT cd /egconfigs && ansible-playbook
> evergreen_restart_services.yml -vvvv -e "hosts=127.0.0.1" && while true; do
> sleep 1; done
>
> uncomment this line
> ENTRYPOINT while true; do sleep 1; done
>
> Rebuild your image:
>
> 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
>
> Then run the resulting image
>
> docker run -it -p 80:80 -p 443:443 -p 210:210 -p 6001:6001 -p 32:22 -p
> 5433:5432 -h app.evergreen.com <image id>
>
> Login to the container:
> docker exec -it `docker ps -q` bash
>
> Since you commented out the ENTRYPOINT line, you'll need to run it by hand:
>
> cd /egconfigs && ansible-playbook evergreen_restart_services.yml -vvvv -e
> "hosts=127.0.0.1"
>
>
> If it has an error, at least the container doesn't die. You can
> investigate the folder permissions. And maybe fix whatever the issue is.
>
> Hopefully I've given you some ideas to try.
> Good luck!
>
>
> -Blake-
> Conducting Magic
> Can consume data in any format
> MOBIUS
>
> On 8/13/2023 2:52 PM, Vaclav Jansa wrote:
>
> Hello Blake,
> docker image was build from Fridays clone of docker git.
> with command
> 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
>
> Configuration file is attached,
>
> Failure is then reported almost at end of startup
>
> docker run -it -p 80:80 -p 443:443 -p 210:210 -p 6001:6001 -p 32:22 -p
> 5433:5432 -h app.evergreen.com 65d123dbd2ed
>
> in task Run autogen.
>
> Error is also attached.
>
> Many thanks for your check and all hints
>
> Vaclav
>
> On Sun, Aug 13, 2023 at 4:19 AM Blake Henderson <
> blake at mobiusconsortium.org> wrote:
>
>> Vaclav,
>>
>> Which command did you use to produce that error?
>>
>> -Blake-
>> MOBIUS
>>
>> On Fri, Aug 11, 2023, 1:42 PM Vaclav Jansa via Evergreen-general <
>> evergreen-general at list.evergreen-ils.org> wrote:
>>
>>> Hello Blake and Jane,
>>> thanks for all the magic.
>>>
>>> We still try to solve multiple problems with localization. So image with
>>> enabled i18n will be better for us and our testing.
>>>
>>> Unfortunately our builded image does not start correctly / it reports
>>> some access issue
>>>
>>> fatal: [127.0.0.1]: FAILED! => {
>>>     "changed": true,
>>>     "cmd": "export PATH=$PATH:/openils/bin && /openils/bin/autogen.sh -u",
>>>     "delta": "0:00:00.005884",
>>>     "end": "2023-08-11 14:29:36.772621",
>>>     "invocation": {
>>>         "module_args": {
>>>             "_raw_params": "export PATH=$PATH:/openils/bin && /openils/bin/autogen.sh -u",
>>>             "_uses_shell": true,
>>>             "argv": null,
>>>             "chdir": null,
>>>             "creates": null,
>>>             "executable": null,
>>>             "removes": null,
>>>             "stdin": null,
>>>             "stdin_add_newline": true,
>>>             "strip_empty_ends": true,
>>>             "warn": true
>>>         }
>>>     },
>>>     "msg": "non-zero return code",
>>>     "rc": 1,
>>>     "start": "2023-08-11 14:29:36.766737",
>>>     "stderr": "mkdir: cannot create directory ‘/openils/var/web/opac/extras/ac’: Permission denied",
>>>     "stderr_lines": [
>>>         "mkdir: cannot create directory ‘/openils/var/web/opac/extras/ac’: Permission denied"
>>>     ],
>>>     "stdout": "Unable to write to /openils/var/web/opac/common/js, please check\nUnable to write to /openils/var/web/js/dojo/fieldmapper, please check\nUnable to write to /openils/var/web/opac/extras/slimpac, please check",
>>>     "stdout_lines": [
>>>         "Unable to write to /openils/var/web/opac/common/js, please check",
>>>         "Unable to write to /openils/var/web/js/dojo/fieldmapper, please check",
>>>         "Unable to write to /openils/var/web/opac/extras/slimpac, please check"
>>>
>>> I will try it one more time from build. But maybe you meet already this
>>> issue.
>>>
>>> I use for build kvm virtual machine  with Ubuntu LTS 22.04 and actual
>>> docker.io. everything is running under user added in docker group.
>>>
>>> Many thanks for all your inputs
>>>
>>> Vaclav
>>>
>>> (a guy which build docker images for Linda's dinner)
>>>
>>> On Fri, Aug 11, 2023 at 4:32 PM Blake Graham-Henderson via
>>> Evergreen-general <evergreen-general at list.evergreen-ils.org> wrote:
>>>
>>>> Linda,
>>>>
>>>> The images that we've posted to dockerhub were not built with i18n
>>>> turned on. That switch needs to have been set to "yes" during the build
>>>> process. Which means, you'll probably want to build your own docker image
>>>> instead of using the pre-made images.
>>>>
>>>> Repo: https://github.com/mcoia/eg-docker
>>>>
>>>> Building your own image is done like this:
>>>>
>>>> 1. Clone the git repository that does the work:
>>>>
>>>> git clone https://github.com/mcoia/eg-docker.git
>>>>
>>>> 2. Customize the vars.yml to suit your needs
>>>>
>>>> cd eg-docker/generic-dockerhub
>>>> vi vars.yml
>>>>
>>>> The main two variables are:
>>>>   ubuntu_version: focal
>>>>   evergreen_version: 3.9.1
>>>>
>>>> I'd change evergreen_version to: 3.11.1
>>>>
>>>> You're also interested in this setting:
>>>> add_evergreen_language_support: no
>>>>
>>>> If you change that setting to "yes" - it will cause the build to edit
>>>> the eg_vhost.conf file during the build.
>>>>
>>>> But* if you already have an eg_vhost.conf file that you would like to
>>>> use, then leave that setting "no" and copy your eg_vhost.conf file directly
>>>> into the generic-dockerhub folder.
>>>>
>>>> You'll need to make one more change in order to incorporate your
>>>> eg_vhost.conf:
>>>>
>>>> # edit Dockerfile
>>>> vi Dockerfile
>>>>
>>>> Add this line:
>>>> ADD eg_vhost.conf /egconfigs/eg_vhost.conf
>>>>
>>>> Put that line right above this line:
>>>> RUN cd /egconfigs && ansible-playbook install_evergreen.yml -v -e
>>>> "hosts=127.0.0.1"
>>>>
>>>> so it should look like this:
>>>>
>>>> .....
>>>> ADD vars.yml /egconfigs/vars.yml
>>>> ADD install_evergreen.yml /egconfigs/install_evergreen.yml
>>>> ADD evergreen_restart_services.yml
>>>> /egconfigs/evergreen_restart_services.yml
>>>> ADD restart_post_boot.yml /egconfigs/restart_post_boot.yml
>>>> ADD eg_vhost.conf /egconfigs/eg_vhost.conf
>>>> RUN cd /egconfigs && ansible-playbook install_evergreen.yml -v -e
>>>> "hosts=127.0.0.1"
>>>> ENTRYPOINT cd /egconfigs && ansible-playbook
>>>> evergreen_restart_services.yml -vvvv -e "hosts=127.0.0.1" && while true; do
>>>> sleep 1; done
>>>> #ENTRYPOINT while true; do sleep 1; done
>>>>
>>>>
>>>> Now, you're ready to build your own docker image. Like this:
>>>>
>>>> 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
>>>>
>>>> You do need to be in the generic-dockerhub folder when you run that
>>>> command
>>>>
>>>> It will take about 15 minutes to complete. Once completed, Docker will
>>>> report the sha hash of the image that you just built. You can see it with
>>>> this command:
>>>>
>>>> docker images
>>>>
>>>> Now that you have your own image. You can start an Evergreen server
>>>> from it. Like this:
>>>>
>>>> docker run -it -p 80:80 -p 443:443 -p 210:210 -p 6001:6001 -p 32:22 -p 5433:5432 -h app.evergreen.com <your_new_image_sha_hash>
>>>>
>>>> Watch it boot up, and make sure it finishes. You will know that it finishes when you see the "PLAY RECAP" line, and there should be 0 fails.
>>>>
>>>> You can safely disconnect from the container leaving it running using the magic key combination: ctrl+pq (NOT ctrl+c, that will kill it)
>>>>
>>>>
>>>> Now that I've said all of that, and you're going to supply your own eg_vhost.conf file, it might be faster to use the pre-built image from dockerhub, boot it up,
>>>> then replace the eg_vhost.conf file located in the container, and restart apache2.
>>>>
>>>> So that would look like this:
>>>>
>>>> 1. Start docker with the community container:docker run -it -p 80:80 -p 443:443 -p 210:210 -p 6001:6001 -p 32:22 -p 5433:5432 -h app.evergreen.com mobiusoffice/evergreen-ils:latest
>>>>
>>>> 2. Wait for it to finish starting (look for that PLAY RECAP line, and confirm "0 fail"). Press ctrl+pq.
>>>>
>>>> 3. SSH into the container
>>>>
>>>> ssh -p 32 user at localhost
>>>>
>>>> the password is "password"
>>>>
>>>> 3a. Alternatively, you can attach to the container using "docker exec"
>>>>
>>>> docker exec -it `docker ps -q` bash
>>>>
>>>> 4. Once you're on the shell of the container, you need to make your edits to:
>>>> /etc/apache2/eg_vhost.conf
>>>>
>>>> note: vi is not installed in the container, you might have to install vi:
>>>>
>>>> apt-get update && apt-get install -y vim
>>>>
>>>> vi /etc/apache2/eg_vhost.conf
>>>> (make changes)
>>>>
>>>> Save the file
>>>>
>>>> 5. Restart apache
>>>>
>>>> /etc/init.d/apache2 restart
>>>>
>>>> That should do it!
>>>>
>>>> Good luck. Feel free to ask questions!
>>>>
>>>>
>>>>
>>>> -Blake-
>>>> Conducting Magic
>>>> Will consume any data format
>>>> MOBIUS
>>>>
>>>> On 8/11/2023 8:17 AM, Jane Sandberg via Evergreen-general wrote:
>>>>
>>>> That is very mysterious!
>>>>
>>>> These steps worked for me to add the 950 db seed in French within a
>>>> docker container:
>>>>
>>>> docker exec -it [container_name] bash
>>>> cd /home/opensrf/repos/Evergreen
>>>> make -f Open-ILS/src/extras/Makefile.install ubuntu-focal-translator
>>>> su opensrf
>>>> cd build/i18n
>>>> mkdir locale
>>>> make newpot
>>>> make LOCALE=fr-CA updatepo
>>>> exit # go back to root user
>>>> cd /home/opensrf/repos/Evergreen/build/i18n && make LOCALE=fr-CA install
>>>> su evergreen
>>>> psql -f Open-ILS/src/sql/Pg/950.data.seed-values-fr-CA.sql
>>>>
>>>> El vie, 11 ago 2023 a la(s) 05:51, Linda Jansová (
>>>> linda.jansova at gmail.com) escribió:
>>>>
>>>>> Thank you very much, Jane!
>>>>>
>>>>> We currently use the dev tag (but we may also try some other non-dev
>>>>> tags as you have suggested :-); actually, it seems that the language
>>>>> selector in the OPAC correctly appears after a couple of reloads, then -
>>>>> for a couple of other reloads - it disappears only to appear again after
>>>>> some more reloads ;-).
>>>>>
>>>>> It definitely works in mysterious ways so far; we would probably also
>>>>> need to add the 950 db seed with French (and Czech) translations. Any ideas
>>>>> how to do this correctly?
>>>>>
>>>>> Linda
>>>>> On 8/11/23 14:25, Jane Sandberg wrote:
>>>>>
>>>>> Hi Linda,
>>>>>
>>>>> What tag of the Evergreen container are you using?  I believe that the
>>>>> instructions under "Restarting Evergreen services" are only applicable to
>>>>> the "dev" tag (i.e. if you ran `docker run
>>>>> [...] mobiusoffice/evergreen-ils:dev`).  If you don't specify a tag, it
>>>>> defaults to the "latest" tag, which doesn't contain the file-based
>>>>> restart/recompile methods.
>>>>>
>>>>> I typically use the non-dev tags, using the following steps to restart
>>>>> apache.  Theoretically, they should work if you are using the dev tag too,
>>>>> but I haven't tried them:
>>>>>
>>>>> 1. docker ps # this will show the name of the running container
>>>>> 2. docker exec -it [container_name] bash # this will provide a shell
>>>>> within the running container.  For example, if step 1 had mentioned that
>>>>> the running Evergreen container is named "peaceful_spence", it would be
>>>>> `docker exec -it peaceful_spence bash`
>>>>> 3. apache2ctl restart # simply restarts apache. When I need to restart
>>>>> all services, I use `ansible-playbook
>>>>> /egconfigs/evergreen_restart_services.yml -e hosts="127.0.0.1"` instead.
>>>>>
>>>>> Hope this helps,
>>>>>
>>>>>    -Jane
>>>>>
>>>>> El vie, 11 ago 2023 a la(s) 04:28, Linda Jansová via Evergreen-general
>>>>> (evergreen-general at list.evergreen-ils.org) escribió:
>>>>>
>>>>>> Dear all,
>>>>>>
>>>>>> We have just started experimenting with a Docker container (
>>>>>> https://hub.docker.com/r/mobiusoffice/evergreen-ils), mainly to see
>>>>>> whether it could help us identify what causes i18n issues reported in a
>>>>>> separate thread (with a subject "Evergreen 3.11.0a not properly switching
>>>>>> into Czech in the staff client").
>>>>>>
>>>>>> At this point we are a bit stuck as we would like to make appropriate
>>>>>> i18n changes to the eg_vhost.conf file and then make them visible both in
>>>>>> the OPAC and in the staff client.
>>>>>>
>>>>>> We have uncommented lines related to French translation (just to see
>>>>>> if it works before we would make a deep dive into Czech) and restarted
>>>>>> Evergreen as described at
>>>>>> https://hub.docker.com/r/mobiusoffice/evergreen-ils (under the
>>>>>> heading "Restarting Evergreen services") but it doesn’t seem to change
>>>>>> anything in the OPAC.
>>>>>>
>>>>>> How exactly should we proceed?
>>>>>>
>>>>>> (Maybe a more specific piece of documentation that would answer our
>>>>>> question is available somewhere; in that case, sharing a URL would be great
>>>>>> :-).)
>>>>>>
>>>>>> Thank you in advance!
>>>>>>
>>>>>> Linda
>>>>>>
>>>>>> _______________________________________________
>>>>>> Evergreen-general mailing list
>>>>>> Evergreen-general at list.evergreen-ils.org
>>>>>>
>>>>>> http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general
>>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Evergreen-general mailing listEvergreen-general at list.evergreen-ils.orghttp://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general
>>>>
>>>>
>>>> _______________________________________________
>>>> Evergreen-general mailing list
>>>> Evergreen-general at list.evergreen-ils.org
>>>> http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general
>>>>
>>> _______________________________________________
>>> Evergreen-general mailing list
>>> Evergreen-general at list.evergreen-ils.org
>>> http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.evergreen-ils.org/pipermail/evergreen-general/attachments/20230814/4c0e2dd9/attachment-0001.htm>


More information about the Evergreen-general mailing list