Open vrunoa opened 5 years ago
Hi! thanks for raising this!
We tried that approach a few years ago but noticed that Google is not keeping old versions of Chrome, they seem to wipe them out after a few versions, e.g.
EXPECTED_CHROME_VERSION="67.0.3396.79"
CHROME_EXEC="http://dl.google.com/linux/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${EXPECTED_CHROME_VERSION}-1_amd64.deb"
wget -nv "${CHROME_EXEC}"
#=> 2019-09-13 12:18:06 ERROR 404: Not Found.
So you can't really achieve repeatability with this approach, at least not for more than a few versions in the past.
Because Google is deleting old Chrome versions we decided to automatically store them in GitHub releases (thank you GitHub <3) e.g.
But even so your approach is probably better, let's see what @diemol thinks.
Exactly what @elgalu says, the approach works for Firefox because it is possible to go back and fetch any past version, which is not possible with Chrome. Then, sadly, repeatability is not going to happen.
One way to tackle this would be to get all the Chrome versions we have stored in the releases, put them in some repository (or figure out how to find them through the GitHub API), and then use them for the docker build
process... That approach would actually lead us to have some sort of repeatability. It just seems like a lot of work 😄
Thanks for the comments, sorry for the really late reply. What do you guys think about trying to download the specific version on the container but if it fails, download the latest stable? Like a fallback, with a warning explaining the issue? Too messy?
not so much in favor of that conditional, it makes it kind of unpredictable again and the warning will be ignored by most:)
Hey guys, I started using this image and I notice that when installing chrome it's always set to install latest stable meaning what stable at the moment. https://github.com/elgalu/docker-selenium/blob/master/Dockerfile#L657-L663 But that doesnt seem to be the flow for Firefox https://github.com/elgalu/docker-selenium/blob/master/Dockerfile#L657-L663
The issue(not a huge issue) is repeatability, I actually wanted to build an old version using an old tag but chrome was always the latest, so I started playing a bit and got the container to install old versions. https://github.com/elgalu/docker-selenium/compare/master...vrunoa:use-older-chrome
I know we can always rely on docker/hub but if for some reason docker is down or some other issue people wont be able to easily go back.
So my question is: would you guys consider a PR were we change the way we install chrome to be more specific and not install the latest stable at an specific point in time?