You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Docker容器中安装运行sbt时Bintray返回403错误该如何处理?

问题根因

  • 用到的dl.bintray.com是JFrog已在2021年全面下线的旧托管服务,所有旧资源下载地址统一返回403错误,不属于Bintray服务故障,是源地址过期导致的问题。
  • 原Dockerfile中用到的repo.typesafe.com的ivy源也早已停止维护,后续访问同样会报错。

修复方案

第一步:替换sbt安装源

将原Dockerfile中安装sbt的相关代码全部替换为官方维护的rpm源安装逻辑,同时修复CentOS 8已停止服务导致的默认yum源失效问题,修改后的完整Dockerfile参考如下:

FROM centos:centos8
# 修复CentOS8 EOL后的yum源问题
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

ENV SCALA_VERSION 2.13.1
ENV SBT_VERSION 1.5.2

RUN yum install -y epel-release
RUN yum update -y && yum install -y wget curl

# 安装JAVA
RUN yum install -y java-11-openjdk

# 安装SBT
RUN curl -L https://www.scala-sbt.org/sbt-rpm.repo > /etc/yum.repos.d/sbt-rpm.repo
RUN yum install -y sbt-${SBT_VERSION}

WORKDIR /root
EXPOSE 8080
# 必须先复制本地项目代码到容器工作目录,否则sbt compile会因找不到项目配置报错
COPY . .
RUN sbt compile
CMD sbt run

第二步:可选优化

如果不需要绑定CentOS系统,可以直接使用官方预构建的sbt镜像作为基础镜像,无需自行安装Java和sbt,大幅简化Dockerfile逻辑:

FROM sbtscala/scala-sbt:eclipse-temurin-11_1.9.7_2.13.12
WORKDIR /root
EXPOSE 8080
COPY . .
RUN sbt compile
CMD sbt run

内容的提问来源于stack exchange,提问作者osumatu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:57:02