Restoring saved views...Checking that all C functions were properly updated...Postgres instance setup completed. * Starting PostgreSQL 16 database server ...done.Processing passed arguments...: --skip-hivedAttempting to execute hived using additional command line arguments: /home/haf_admin/docker_entrypoint.shNot launching hived due to --skip-hived command-line optionYou can now connect to the database. This this container will continue to exist until you shut it down/home/haf_admin/docker_entrypoint.sh: line 347: httpd: command not found
Designs
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
Removing httpd from docker entry point isn't best solution, as having httpd launched was to allow dependencies to launch gracefully.
I'm reopening this issue, since I think the root problem is a difference between images used for CI and production. IMO the CI image should be some form of production image (possibly with extra stuff). In this case, httpd would be in the image and this problem would not occur. As a side issue, the CI dockers should probably be clearly named so that they won't be used by devs, as this was secondary reason for this problem (mahdi was using wrong image it seems).
Production image just should contain httpd. There should be no dedicated HAF image for CI, since we need to test production version. I have some idea how to solve need to have a lot of dependencies required to perform CI and still use minimized production image, but it can take definitely more time. Atm I am going to extend minimal image for httpd.
httpd would be an overkill ncat -lk -p 8091 --sh-exec 'echo -e "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"'
does the thing, sure, it just serves dummy responses but that's exactly what healthcheck is looking for
The thing I'm confused about is httpd is already there and works in the images I am testing (this includes recent develop ones). But bartek said there is no dedicated haf image for CI? So what is different about the one that doesn't work?
instance (derived from ci-base-image) which is huge and contains testing environment. This version also does not contain httpd, so I doubt --skip-hived works there
syncad@vm000:/storage1/src/haf$ docker run -it --rm --entrypoint bash registry.gitlab.syncad.com/hive/haf/instance:localhaf_admin@67b90614053c:~$ httpdbash: httpd: command not found
minimal-instance (derived from minimal-runtime) which has less installed packages than ci-base-image.
My change in !544 (merged) added small package: netcat-openbsd to both and uses it to perform HTTP listening of configured HTTP port.
Current state is bad (according to testing) since on CI we are using instance images instead of minimal-instance what should be changed to always verify production ready version. But to do it, we need to change CI job definitions (especially for hive fork manager unit tests) what can be quite tricky.
This issue doesn't occur if you only pass --skip-hived as a argument. But it is easy to duplicate if you pass a hived argument as well. For example, in a docker compose .env file, try:
Fix is here: args have been improperly passed at docker compose side. I Also think there is no need to split images (we have too much images in each app) what will make more troubles than benefits
Thanks for the fix. However, I strongly disagree on need to split hived and postgres into separate apps. This change will allow for very useful configuration of running each on separate server, enabling operation on servers with fewer individual resources.