Der folgende Fehler [tritt] in gem install in Docker build x unter Verwendung von GitHub-Aktionen auf [https://github.com/kurema/forkedLetMeSee/runs/1360344632?check_suite_focus=true#step: 10: 2066).
#24 [linux/arm/v7 7/10] RUN gem install iconv
#24 2.493 ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20)
#24 2.495 ERROR: You must add /C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA to your local trusted store
Die Basiscontainer sind httpd: 2.4.46 und httpd: 2.4.43 (Stand: November 2020) linux / arm / v7 auf Docker Hub.
Es kommt nicht in linux / arm64 und linux / amd64 vor.
Weitere Informationen finden Sie unter Repository.
Wie später beschrieben, wurde es danach unnötig, sich danach damit zu befassen. Weitere Informationen finden Sie in der damaligen Version für Dockerfile usw.
Die Ursache ist ein Zertifikatfehler wie geschrieben. Das Zertifikat "GlobalSign Root CA" ist nicht enthalten.
Durch Hinzufügen eines Zertifikats wird das Problem behoben. Folgen Sie Fehlerbehebung auf der Bundler-Seite und Direkter Link zur PEM-Datei. Download von /rubygems/master/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem).
Curl funktioniert jedoch möglicherweise nicht, wenn das Zertifikat fehlt / alt ist. Es ist besser, es von Curl extern als innerhalb der Docker-Datei abzurufen und eine Kopie zu erstellen.
yaml:.github/workflows/docker.yml
- name: Download GlobalSignRootCA.pem
run: curl https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem -o GemCert.pem
Dockerfile
COPY GemCert.pem /tmp/GemCert.pem
RUN mkdir /usr/share/ca-certificates/Gem && \
cp /tmp/GemCert.pem /usr/share/ca-certificates/Gem && \
echo "Gem/GemCert.pem" >> /etc/ca-certificates.conf && \
update-ca-certificates && \
rm /tmp/GemCert.pem
Außerdem hat apt-get install ca-certificates das Problem nicht gelöst.
Außerdem,
$ curl -Lks 'https://git.io/rg-ssl' | ruby #SSL-Prüfung
$ gem install bundler #Bundler-Update
$ gem update --system #RubyGems-Update
Wurde empfohlen. Ich musste es nicht aktualisieren, aber das Überprüfungsskript ist nützlich.
Das Herunterladen eines SSL-Zertifikats von GitHub ist ein Sicherheitsrisiko. Auch wenn es nicht GitHub ist, mache ich mir immer noch Sorgen darüber, ob die URL in Zukunft beibehalten wird und ob das Zertifikat selbst in Zukunft vertrauenswürdig ist. Insbesondere sollten Sie Problemumgehungen vermeiden, die derzeit nur mit GitHub-Aktionen funktionieren, die ebenfalls regelmäßig ausgeführt werden.
In meinem Fall habe ich danach den Quellcode so geändert, dass die gem install selbst nicht mehr benötigt wurde und ich habe dieses Update entfernt.