Skip to content
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

Latest image incompatible with old versions of docker engine ? #269

Closed
thomasmarech opened this issue Jun 29, 2022 · 7 comments
Closed

Latest image incompatible with old versions of docker engine ? #269

thomasmarech opened this issue Jun 29, 2022 · 7 comments
Labels
question Usability question, not directly related to an error with the image

Comments

@thomasmarech
Copy link

thomasmarech commented Jun 29, 2022

Hi,
With the latest images of tomcat:9-jdk8 and tomcat:9-jdk17 we are facing issues when deploying the container on servers running old versions of docker engine (ie. Docker version 18.09.7, build 2d0083d).
The container fails to start with the following error:

docker run -it --rm -p 8888:8080 tomcat:9-jdk17
Cannot find /usr/local/tomcat/bin/setclasspath.sh
This file is needed to run this program

Image is running on newer versions of docker engine (ie. Docker version 20.10.11, build dea9396)
Are you aware of any incompatibility ?

Thanks
Thomas

@vlasbaard
Copy link

vlasbaard commented Jun 29, 2022

Somewhere after focal, the docker image contains bash 5.1.16, which seems to use an internal [ (aka test) rather than /bin/[ or /usr/bin/[ - this one seems to have broken -r, -w and -x.

At this moment I'm bisecting to see where the problem lies.

Workaround:
alias [=/usr/bin/[
or the slightly better readable
alias '['=/usr/bin/test

@vlasbaard
Copy link

It's not bash itself, a built-from-source 5.1.16 on focal works fine (also after moving /usr/bin/[ out of the way).

@dlyash
Copy link

dlyash commented Jun 29, 2022

@thomasmarech Falling back to Focal did the trick for me. Luckily there're Focal versions available: tomcat:9-jdk8-temurin-focal and tomcat:9-jdk17-temurin-focal.

@vlasbaard
Copy link

vlasbaard commented Jun 29, 2022

Ok, just did a jammy install from scratch (in Virtualbox)- there everything is fine.

I.e., something is wrong with the docker image (built by dockerhub) specifically. I'll let them sort that out by themselves.

Note that the ubuntu/apache2 image (built by Canonical (aka Ubuntu)) suffers from the same issue, but possibly that is based on the dockerhub-built image.

@yosifkit
Copy link
Member

jammy based images definitely require newer versions of docker and libseccomp which is the issue here. So either update those packages on the hosts or use the focal based variants. See also tianon/docker-brew-ubuntu-core#236

@wglambert wglambert added the question Usability question, not directly related to an error with the image label Jun 29, 2022
@vlasbaard
Copy link

@yosifkit Confirmed, at least for the test in ubuntu:latest. Thanks for that.

Time to update dockerd everywhere...

@tianon tianon pinned this issue Aug 18, 2022
@tianon tianon closed this as completed Oct 6, 2022
torbrenner added a commit to samply/docker-common that referenced this issue Feb 28, 2023
srstsavage added a commit to axiom-data-science/docker-erddap that referenced this issue Mar 4, 2023
We should build (at least) two Docker hub images, one based on
unidata/tomcat-docker:10.1.0-jdk17-openjdk
and another based on
unidata/tomcat-docker:10.1.0-jdk17-temurin-focal
which is compatible with older Docker versions.

docker-library/tomcat#269
@prakashdam
Copy link

getting this error like : Cannot find /usr/local/tomcat/bin/setclasspath.sh
This file is needed to run this program
during tomcat container installtion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Usability question, not directly related to an error with the image
Projects
None yet
Development

No branches or pull requests

7 participants