-
Notifications
You must be signed in to change notification settings - Fork 134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bump to 24.1 - Single-container setup #607
Conversation
Very cool, I triggered a test run. It would be nice if we can get tests to turn green at some point. But they probably also need to be updated. Thanks a lot! |
As a first step feel free to concentrate on the single-container option. Then the PR are easier to review. |
The single-container changes are done, and I’ve also updated the compose files. Everything seems to be working well, and all tests in the forked repo have passed. I also updated the tool versions for the workflow tests, as the old ones seemed incompatible. Next, I’ll work on adding the Rustus service, integrating interactive tools, and replacing Nginx with Traefik in the compose setup. Let me know if you have any feedback on the current changes. Thanks! |
@jyotipm29 really impressive work. Thanks you a lot. |
This looks really cool @jyotipm29 Thanks a lot! 🚀
A bit more important than the compose setup and traefik would be to successively replace ansible-galaxy-extras with the roles that are maintained and e.g. used in usegalaxy-eu/infrastructure-playbook or on the org server. Sorry that we did not came up with this earlier and you already updated the role in your fork. Maybe it makes the replacement easier, because you can replace the roles one by one and run the ci tests in between. |
Thanks! I will check that out. |
Sure! Björn already left his comments and suggestions, and I thought Jyoti would probably want to address them. However, as you pointed out, this can be merged. @jyotipm29 Excellent work! Thank you! :) |
@jyotipm29 what do you think about postponing the CI compose tests until after the single-container tests is green. This way we safe a bit of CI time and you can faster iterate on the single-container one? |
Yes, good idea. I would temporarily disable those tests in the next commit. |
If someone wants to test it quickly :)
|
I get ...
So installing tools into the container does not work with the container. Its strange, I thought we had a test for this. |
This is weird. The tool installation worked in my environment. |
Did you run with or without --privileged=true? |
It worked both ways. Even I can see in the CI test logs that the tool installation worked. |
Which tool.are you using to install? |
I tested cherry_pick_fasta and abyss. Is there any particular tool that you want me to check? |
Just to confirm, the idea is to completely phase out ansible-galaxy-extras and instead use individual roles like usegalaxy_eu.nginx, usegalaxy_eu.htcondor etc, similar to how we currently use galaxyproject.postgresql in this repository. Is this correct? |
Yes :-). And now since the tests work I would do that one commit at a time and see if tests still work. |
It seems that if you start Galaxy with |
I can't reproduce the issue. I have tested it and the persistence works. Please share what error you see. |
Start the contianer, install a tool. It is here:
When you now stop the container and run the same command again, so mount the same directory in again. It can not load the installed tool, because it was not in the /export dir. the result is that the tool is not installed anymore. But there is also a different problem. I only see an nginx error page. Galaxy is not starting in this setting. |
In the original dockerfile, we just create the /shed_tools directory and galaxy is not configured to use that path. But for the nginx issue, are you refreshing the web page immediately after restarting the container? Because it takes a few minutes to startup again. |
Since we already persist the database folder, do we need the /export/shed_tools dir? |
Setting managed_config_dir to |
I will document what I found so far here, not everything needs to be addressed, its just a list to keep track. I'm tempted to merge as it is and close old issues, ping old users to give this new version a try as soon as we can ensure the /export functionality works.
When I restart a container with a full
Cosmetic changes:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Travis is not used anymore as it seems, at least it is not triggered. Do you have time to move the tests over to github actions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can do that
Some folders are owned by root, this means that certain operations are crashing under the galaxy user. |
migrate from galaxy-central to "galaxy"
The root user's home directory was set to /home/galaxy. I will fix it in the next commit. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is ready to be merged. I ran a quick test, and I was able to spin it up, install the tools, upload files, run jobs, and run ITs.
Great work @jyotipm29!
Thanks! I really appreciate it! :) |
Great work! |
Upgrades:
Updates:
The dockerfile now uses a multi-stage build to reduce the final image size and include only necessary files.
New Service Support:
/rabbitmq/
path. The default access credentials areadmin:admin
./flower/
path. The default access credentials areadmin:admin
.Ansible Playbooks:
guest
user and addsadmin
,galaxy
, andflower
users for RabbitMQ during container startup.Environment Variables:
GUNICORN_WORKERS
andCELERY_WORKERS
magic environment variables to set the number of Gunicorn and Celery workers, respectively, during container startup.Configuration Changes:
/etc/galaxy/gravity.yml
.tools_conf_interactive.xml.sample
is placed insideGALAXY_CONFIG_DIR
. Nginx is also configured to support both domain and path-based ITs.cvmfs-config.galaxyproject.org
repository for automatic configuration and updates of Galaxy project CVMFS repositories. Updated tool data table config path to include CVMFS locations fromdata.galaxyproject.org
in--privileged
mode.docker_net
,docker_auto_rm
, anddocker_set_user
parameters for Docker-enabled job destinations.update_yaml_value.py
script to update nested key values in a YAML file.ie_proxy
withgx-it-proxy
.nginx_upload_module
withTUSd
for delegated uploads.CI Tests: