Dev -  I had a conversation IRL with Todd recently, cc'd here - not on the
project but willing to help out.  He has offered some advice for the
project to get the Docker distro of Apache Fineract working again.  I would
like to have either a push back or we should restore the docker file asap.

To recap:
 The DockerHub Image is two years old, and the process to pull from our Dev
branch has been broken that entire time.  It broke when we removed the
docker-build file with this ticket
https://issues.apache.org/jira/browse/FINERACT-1469.

With a Million downloads of fineract from DockerHUB, where that version has
multiple CVEs (security issues), we should not be continuing to keep that
there.

So, we need to fix the docker pipeline.  Credentials will be required from
infra.

Todd's comments:

Extended Summary
>
> The problem for the internal Fineract development pipeline is that changes
> were made to the build process that
> removed the expected Dockerfile
> added an external dependency to the code repo (mifos community-app web UI)
> does not publish a public Fineract Docker image to Docker Hub
>
> At first glance, the lack of a Dockerfile in the code might seem to be the
> reason that no containers have been pushed to Docker Hub. A Dockerfile is
> the standard way of creating images. This is very confusing for many people
> (including me), however this is not the actual problem because JIB (Java
> Image Builder) is set up to build the image during testing directly from
> java source code by Gradle in two places:
>
> build-docker-postgresql.yml
> build-docker-mariadb.yml
>
> The problem is that JIB does not seem to be configured to actually push
> the container image to Docker Hub. It only seems to be configured to build
> the image for testing.
>
> To solve this, two things need to be done:
>
>
>    - It needs to be decided when to push the image (and possibly create a
>    new GitHub Action to do it)
>    - Code needs to be added to configure JIB to know where to push the
>    image on Docker Hub (see this example)
>    - Credentials need to be supplied to the GitHub Action to allow it
>    actually push the image
>
>
> Additional Open Source Observations (Optics)
>
> Dockerfile
>
> The removal of the Dockerfile from the repo is confusing (especially
> coupled with the existence of a docker-compose.yml file) and also makes it
> harder for potential contributors to set up and run Fineract because now
> dependencies need to be installed locally, rather than running them all in
> containers.
>
> The lack of a Dockerfile in the repository is nonstandard from an Open
> Source perspective. Regardless of whether it is needed by the Fineract
> build process or not, most open source projects include a Dockerfile, and
> most open source users expect one to exist in the repo so they can easily
> build / run / test the project locally.  Adding the Dockerfile back to the
> repo should be trivial (and removes the need for JIB entirely).
>
> General Setup
>
> The current Fineract process for building and running using containers
> makes it significantly harder for developers to get started with Fineract
> because a local Java environment needs to be installed. More disappointing,
> a completely different public set of instructions exist on Docker Hub .
> These instructions do not work because they are out of date, but are
> significantly easier for developers to use. Having two sets of different
> install instructions is confusing, but having the simpler set of
> instructions that do not work is a very bad developer experience.
>
>
>
>
> On Sun, Feb 18, 2024 at 8:46 PM VICTOR MANUEL ROMERO RODRIGUEZ <
> victor.rom...@fintecheando.mx> wrote:
>
>> Hello,
>>
>> Another way to have the Docker Hub image published (just like Apache
>> Tomcat):
>>
>> https://github.com/docker-library/official-images
>>
>> https://github.com/docker-library/tomcat
>>
>> Regards
>>
>>
>>
>> El dom, 18 feb 2024 a las 10:05, James Dailey (<jdai...@apache.org>)
>> escribió:
>>
>>> Is there an easy thing to request?
>>>
>>> ---------- 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!
>>>
>>>

Reply via email to