全力サイバーパンクシティ

更新頻度の悪いブログ

【Docker】CentOS8でFailed to download metadata for repo 'appstream'

Dockerfileで下記みたいなsbtのインストールをする箇所があった。

FROM centos:latest
~~~~~~~~~~
RUN https://bintray.com/sbt/rpm/rpm | tee /etc/yum.repos.d/bintray-sbt-rpm.repo \
&& yum -y install java-1.8.X-openjdk java-1.8.X-openjdk-devel sbt


ビルドしたらこんなエラーが
Failed to download metadata for repo 'appstream'

え、どういうことコンテナから外部に通信できないのか!?とかも一瞬思ったけど、
FROM のところlatest指定しててcentosのversionが8なんですよね。
それで調べてたらこんな記事が。
forums.centos.org
みんな同じ状況だったっぽい。

しかも下記のリンクはリダイレクトされるようになっちゃって、今までのやり方じゃダメじゃんと。
https://bintray.com/sbt/rpm/rpm


centosのバージョンが8はよろしくなさそうなので暫定対処として7に変更。
sbt欲しいんだけど!ってところはググったらsbtをインストールするためにSDKMANをインストールしろとのことで
下記に変更した。

FROM centos:7
~~~~~~~~~~
# sdkmanをインストールするためにzipとunzipを入れる
RUN yum -y install zip
RUN yum -y install unzip

# sdkインストールしてsbtも入れる
RUN curl -s “https://get.sdkman.io” | bash
RUN source “$HOME/.sdkman/bin/sdkman-init.sh” && sdk install sbt

RUN yum -y install java-1.8.X-openjdk java-1.8.X-openjdk-devel

しかしDockerfileにlatestってよろしくないな。