Hello James et al, This is the PR Github Action for DockerHub Publishing for your review:
https://github.com/apache/fineract/pull/3887/files Regards El mié, 8 may 2024 a las 19:53, VICTOR MANUEL ROMERO RODRIGUEZ (< victor.rom...@fintecheando.mx>) escribió: > Keep Jib. > > Let me share one PR for discussion/review. > > The docker compose file can point to Docker Hub image. Of course not build > from docker compose just download the latest version. (not building) > > > > El mié, 8 may 2024 a las 19:28, James Dailey (<jamespdai...@gmail.com>) > escribió: > >> Ok. So… Aleks - comment ? >> Zoltan , Victor - can we come to a decision on this? >> >> Keep Jib >> Add GitHub action >> Yes? >> >> >> >> >> On Mon, May 6, 2024 at 2:00 PM todd densmore <tdensm...@gmail.com> wrote: >> >>> James, >>> >>> (adding comments as requested - but from here it looks like there is >>> enough momentum from the team to resolve the core issue) >>> >>> Firstly, it looks like a custom role can be added to the repo to allow >>> GitHub Actions (ie Jib) to push new images to DockerHub. Some new GitHub >>> Action code will have to be added to do the "push", but that is trivial. >>> Both of these tasks can be done quickly and easily, and solves the short >>> term problem of getting current Fineract images to DockerHub. This is an >>> immediate win and resolves the most immediate issue. >>> >>> The second issue that Fineract may wish to address is whether or not to >>> include a Dockerfile in the public repo. >>> >>> The docker-compose file (pointing to DockerHub) that is currently >>> included in the Fineract repo *will work*, allowing new users to get >>> setup quickly. However users will have no way to create new local versions >>> of the Fineract container image locally without installing the complete >>> java (Jib) toolchain. This may not be an issue at all if most users already >>> have a local java environment. For casual users looking to contribute to >>> Fineract, this may present a bit of friction. >>> >>> Including a Dockerfile in the repo can be done *without replacing Jib*. >>> However, having a visible Dockerfile that is NOT used with the non-visible >>> Jib build process will be confusing. Keeping the Dockerfile up to date will >>> also be harder, since the file will not be the single source of truth. This >>> may or not be an issue for the team. >>> >>> Lastly (and probably the most contentious option) would be to replace >>> the Jib image build tooling with the more common Dockerfile build >>> mechanism. This represents more work from the team, but also increases the >>> transparency from the outside user. This may not be an issue for the team >>> (especially if the number of outside contributors is small). >>> >>> -Todd >>> >>> On Sun, May 5, 2024 at 1:51 PM James Dailey <jamespdai...@gmail.com> >>> wrote: >>> >>>> Victor - thank you for your PR and Zoltan for your comments. >>>> >>>> On Fri, May 3, 2024 at 10:31 AM VICTOR MANUEL ROMERO RODRIGUEZ < >>>> victor.rom...@fintecheando.mx> wrote: >>>> >>>>> James, >>>>> >>>>> I think that this option is also viable: >>>>> >>>>> "For Github Actions we can use a role account and attach the secrets >>>>> to your repository" >>>>> >>>>> At this point there are two options >>>>> >>>>> 1. Apache Infra has to add the secrets to the Apache Fineract >>>>> repository and then we can create/modify github actions for using the >>>>> existing Jib library. >>>>> >>>> This approach maintains the same consistent build but is a bit >>>> non-standard? The problem with option #2 is that there will be effectively >>>> two "builds" from the same source, and they won't match because the Jib >>>> library is in use by active dev teams on the project today. >>>> >>>> >>>>> 2. Merge the https://github.com/apache/fineract/pull/3879 to the >>>>> develop branch in order to allow Dockerhub to build/publish a new docker >>>>> image. >>>>> >>>> This approach returns the project to a more standard approach? It >>>> does not require special action by Infra but creates a separate and >>>> potentially inconsistent build. >>>> >>>>> >>>>> Any other option or discussion about the solution for having an >>>>> updated Apache Fineract image published on Dockerhub is welcome. >>>>> >>>> agreed - last call for comments on which of these. I'm leaning toward >>>> the second because it requires no action by Infra and is the shortest path >>>> to getting a new image at DockerHUB. >>>> >>>> Todd- can you comment? >>>> >>>> >>>>> >>>>> Best regards >>>>> >>>>> Victor >>>>> >>>>> Regards >>>>> >>>>> Víctor Romero >>>>> >>>>> El vie, 3 may 2024 a las 8:56, James Dailey (<jdai...@apache.org>) >>>>> escribió: >>>>> >>>>>> As this relates to this thread but was over on infra users... >>>>>> >>>>>> >>>>>> ---------- Forwarded message --------- >>>>>> From: Gavin McDonald <gmcdon...@apache.org> >>>>>> Date: Sun, Feb 18, 2024 at 12:24 AM >>>>>> Subject: Re: Docker help >>>>>> To: James Dailey <jdai...@apache.org> >>>>>> Cc: Users <us...@infra.apache.org> >>>>>> >>>>>> >>>>>> Hi James. >>>>>> >>>>>> >>>>>> >>>>>> On Sun, Feb 18, 2024 at 3:00 AM James Dailey <jdai...@apache.org> >>>>>> wrote: >>>>>> >>>>>>> Infra - >>>>>>> >>>>>>> Can you confirm that we can use other processes to push to >>>>>>> apache DockerHUB? >>>>>>> >>>>>> >>>>>> Current supported methods are via Github Actions or Jenkins or >>>>>> locally via your own credentials. >>>>>> >>>>>> For Github Actions we can use a role account and attach the secrets >>>>>> to your repository, or you >>>>>> can provide your own secrets for us to add to your repository >>>>>> >>>>>> For Jenkins we have a role account that we provide access to push to >>>>>> your repository. >>>>>> >>>>>> Committers could also use a settings.xml with this plugin and use >>>>>> their own credentials, we just need >>>>>> to ensure they have push access to Dockerhub. >>>>>> >>>>>> There may also be other methods not explored. >>>>>> >>>>>> See also: >>>>>> https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#authentication-methods >>>>>> >>>>>> HTH >>>>>> >>>>>>> >>>>>>> When I opened a ticket about this, I was told we need a dockerfile >>>>>>> at the root. >>>>>>> >>>>>>> Can we use "jib-maven-plugin to publish the image to Dockerhub". ? >>>>>>> Can we get credentials ? >>>>>>> >>>>>>> James >>>>>>> >>>>>>> >>>>>>> ---------- Forwarded message --------- >>>>>>> From: Arnold Galovics <arn...@apache.org> >>>>>>> Date: Sun, Feb 11, 2024 at 10:45 PM >>>>>>> Subject: Re: Docker help >>>>>>> To: <dev@fineract.apache.org> >>>>>>> >>>>>>> >>>>>>> James, >>>>>>> >>>>>>> This is the out-of-the box solution from DockerHub which definitely >>>>>>> won't work without a Dockerfile. Though that doesn't mean it's the only >>>>>>> way >>>>>>> to build a docker image; as I stated in my previous email. >>>>>>> >>>>>>> Best, >>>>>>> Arnold >>>>>>> >>>>>>> On Mon, Feb 12, 2024 at 7:43 AM James Dailey <jamespdai...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> On DockerHUB the build fails because there is no dockerfile. >>>>>>>> https://hub.docker.com/r/apache/fineract >>>>>>>> >>>>>>>> 2024-02-08T13:12:27Z Building in Docker Cloud's infrastructure... >>>>>>>> 2024-02-08T13:12:28Z Cloning into '.'... >>>>>>>> 2024-02-08T13:12:28Z Warning: Permanently added the RSA host key >>>>>>>> for IP address '140.82.114.4' to the list of known hosts. >>>>>>>> 2024-02-08T13:12:48Z Reset branch 'develop' >>>>>>>> 2024-02-08T13:12:48Z Your branch is up to date with >>>>>>>> 'origin/develop'. >>>>>>>> 2024-02-08T13:12:48Z Dockerfile not found at ./Dockerfile >>>>>>>> >>>>>>>> >>>>>>>> Let's discuss on slack and revert back here. >>>>>>>> >>>>>>>> My intention is to either DELETE the DockerHUB repo or to get this >>>>>>>> working. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Sun, Feb 11, 2024 at 10:14 PM Arnold Galovics <arn...@apache.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Zoltan, James, >>>>>>>>> >>>>>>>>> Just to reflect on your points: >>>>>>>>> 1) Let's not do such a radical change unless we absolutely need to >>>>>>>>> 2) I'm not sure what's the issue here, please explain. We already >>>>>>>>> have docker builds in our pipeline via GitHub Actions (using their >>>>>>>>> runners), the only missing piece is to do a docker push. >>>>>>>>> >>>>>>>>> We need the credentials to be able to do a docker push, alter the >>>>>>>>> pipeline and that's all. >>>>>>>>> >>>>>>>>> If the only thing preventing us from doing this is to keep asking >>>>>>>>> the infra team for the creds, let's pursue them instead of making >>>>>>>>> such an >>>>>>>>> unnecessary change. >>>>>>>>> >>>>>>>>> Arnold >>>>>>>>> >>>>>>>>> On Mon, Feb 12, 2024 at 3:30 AM James Dailey < >>>>>>>>> jamespdai...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> Thanks Zoltan >>>>>>>>>> >>>>>>>>>> Micheal - can you please comment on this discussion? As this >>>>>>>>>> relates to the Google deployment that you put in place? Question! >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Sun, Feb 11, 2024 at 6:27 PM Zoltan Mezei < >>>>>>>>>> zoltan.me...@zz-it.hu> wrote: >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> I think the real issue here is that we use >>>>>>>>>>> GoogleContainerTools's Jib as the build mechanism. It works entirely >>>>>>>>>>> without a Dockerfile. And unfortunately Dockerhub's Automated Builds >>>>>>>>>>> doesn't support building without a Dockerfile. :-( >>>>>>>>>>> >>>>>>>>>>> We have two ways to move forward: >>>>>>>>>>> >>>>>>>>>>> 1. Replace the Jib build with a more traditional, >>>>>>>>>>> Dockerfile-based approach. This would be a quite large change of how >>>>>>>>>>> Fineract is built and the consequences need to be explored - but >>>>>>>>>>> it's >>>>>>>>>>> definitely doable. >>>>>>>>>>> 2. Stick with the Jib build, but don't rely on >>>>>>>>>>> Dockerhub's Automated Builds, but some other build tools like >>>>>>>>>>> jib-maven-plugin to publish the image to Dockerhub. This could also >>>>>>>>>>> work, >>>>>>>>>>> but it requires a build server that I'm not sure we have. >>>>>>>>>>> >>>>>>>>>>> I can try to create a traditional Dockerfile, but it will be >>>>>>>>>>> different from what Jib can produce, so this might lead to >>>>>>>>>>> regressions. >>>>>>>>>>> >>>>>>>>>>> Want me to try this approach next week? >>>>>>>>>>> >>>>>>>>>>> Kind regards, >>>>>>>>>>> Zoltan >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Sun, Feb 11, 2024 at 8:16 AM James Dailey < >>>>>>>>>>> jamespdai...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Victor - my read of the docs is that the default “build rule “ >>>>>>>>>>>> points to master or main but we can also use dev. In fact that’s >>>>>>>>>>>> what is >>>>>>>>>>>> already there in dockerHUB for our project. >>>>>>>>>>>> >>>>>>>>>>>> I think a proper dockerfile in dev branch should be fine. >>>>>>>>>>>> >>>>>>>>>>>> Thanks >>>>>>>>>>>> James >>>>>>>>>>>> >>>>>>>>>>>> On Fri, Feb 9, 2024 at 7:47 PM VICTOR MANUEL ROMERO RODRIGUEZ < >>>>>>>>>>>> victor.rom...@fintecheando.mx> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Reading the dockerhub docs, I think we can do the following: >>>>>>>>>>>>> >>>>>>>>>>>>> 1. Create a master branch from develop branch >>>>>>>>>>>>> 2. Add the Dockerfile (and some scripting on it for handling >>>>>>>>>>>>> the versions) on master branch >>>>>>>>>>>>> 3. Dockerhub will use the dockerfile (and its scripts) from >>>>>>>>>>>>> the master branch >>>>>>>>>>>>> 4. Create github action for keeping in sync develop with >>>>>>>>>>>>> master, so then it will push the changes to the master branch >>>>>>>>>>>>> everytime the >>>>>>>>>>>>> develop branch has a commit on it, then the dockerhub will >>>>>>>>>>>>> publish it as >>>>>>>>>>>>> the latest version. >>>>>>>>>>>>> >>>>>>>>>>>>> Or... we can be more standard >>>>>>>>>>>>> >>>>>>>>>>>>> 1. Rename develop to master >>>>>>>>>>>>> 2. Add a Dockerfile template (and some scripting on it for >>>>>>>>>>>>> handling the versions) on master branch >>>>>>>>>>>>> 3. Dockerhub will use the dockerfile (and its scripts) from >>>>>>>>>>>>> the master branch >>>>>>>>>>>>> 4. Everytime a new commit or tag is created, the dockerhub >>>>>>>>>>>>> will publish it as the latest/specific version. >>>>>>>>>>>>> >>>>>>>>>>>>> What do you think? >>>>>>>>>>>>> >>>>>>>>>>>>> Dockerhub automated builds info: >>>>>>>>>>>>> https://docs.docker.com/docker-hub/builds >>>>>>>>>>>>> >>>>>>>>>>>>> Regards >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> El vie, 9 feb 2024 a las 20:34, James Dailey (< >>>>>>>>>>>>> jamespdai...@gmail.com>) escribió: >>>>>>>>>>>>> >>>>>>>>>>>>>> Victor - I was trying to go down that path as well, as that >>>>>>>>>>>>>> is the error thrown and the suggestion at DockerHUB. However, >>>>>>>>>>>>>> to add the >>>>>>>>>>>>>> key to the git hub requires access and the git is controlled by >>>>>>>>>>>>>> Apache >>>>>>>>>>>>>> Infra. I asked infra@a.o. about that since, again, that is >>>>>>>>>>>>>> what DockerHUB had documented. Unfortunately, I think infra has >>>>>>>>>>>>>> it setup a >>>>>>>>>>>>>> specific way to allow all of the projects to publish to the >>>>>>>>>>>>>> Apache >>>>>>>>>>>>>> DockerHUB so that route would appear to be blocked. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Fri, Feb 9, 2024 at 4:04 PM VICTOR MANUEL ROMERO RODRIGUEZ >>>>>>>>>>>>>> <victor.rom...@fintecheando.mx> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> For making it work without a Dockerfile the credentials of >>>>>>>>>>>>>>> the docker hub account are requiered. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> If they are set in the git repository, a github action can >>>>>>>>>>>>>>> be enabled for this task. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Regards >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> El vie., 9 de febrero de 2024 4:45 p. m., < >>>>>>>>>>>>>>> jamespdai...@gmail.com> escribió: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I've re-opened >>>>>>>>>>>>>>>> https://issues.apache.org/jira/browse/FINERACT-1164 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> This ticket is to enable the build at DockerHUB to work. >>>>>>>>>>>>>>>> For the past two years ++ the Build has failed. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> https://hub.docker.com/r/apache/fineract >>>>>>>>>>>>>>>> This docker account is held by Apache and the Fineract >>>>>>>>>>>>>>>> project is responsible for the content. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The dockerHUB has an "auto build" concept so that every >>>>>>>>>>>>>>>> committed change on Dev leads to a new deployment. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> The build is actually failing or not running because we >>>>>>>>>>>>>>>> have removed the dockerbuild file from the root. That is as >>>>>>>>>>>>>>>> far as I've >>>>>>>>>>>>>>>> gotten. I suspect we had good reasons for that at the time. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Anyway, I would also say that if we cannot get the Docker >>>>>>>>>>>>>>>> build to work THEN we should take this down. Our standard is >>>>>>>>>>>>>>>> to only >>>>>>>>>>>>>>>> support and distribute publicly the last two releases. This >>>>>>>>>>>>>>>> build is really >>>>>>>>>>>>>>>> old, has unfixed CVEs, and is being downloaded in large >>>>>>>>>>>>>>>> numbers. (no idea >>>>>>>>>>>>>>>> why) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>>>> James >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> >>>>>> *Gavin McDonald - * >>>>>> Systems Administrator, ASF Infrastructure Team >>>>>> V.P Travel Assistance Committee >>>>>> >>>>>> https://tac.apache.org - Applications now open for Community Over >>>>>> Code 2024 >>>>>> in Bratislava, Slovakia. Don't delay, apply today! >>>>>> >>>>>>