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 <http://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 <bl...@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@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 <http://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@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
            <http://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
            <http://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@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.jans...@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@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@list.evergreen-ils.org
                    
http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general



            _______________________________________________
            Evergreen-general mailing list
            Evergreen-general@list.evergreen-ils.org
            
http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general

            _______________________________________________
            Evergreen-general mailing list
            Evergreen-general@list.evergreen-ils.org
            
http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general

        _______________________________________________
        Evergreen-general mailing list
        Evergreen-general@list.evergreen-ils.org
        http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general
_______________________________________________
Evergreen-general mailing list
Evergreen-general@list.evergreen-ils.org
http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general

Reply via email to