【问题标题】:Docker image of Java projectJava项目的Docker镜像
【发布时间】:2016-05-28 00:10:55
【问题描述】:

我正在尝试制作一个 java 项目的 docker 映像。我首先创建了一个目录,并在其中创建了一个 docker.txt 文件。文件包含这个

FROM java:8 

# Install maven
RUN apt-get update  
RUN apt-get install -y maven

WORKDIR /home/mmt/CouchBaseClient/CB-RestAPI/CouchBaseThinClient

# Prepare by downloading dependencies
ADD pom.xml /home/mmt/CouchBaseClient/CB-RestAPI/CouchBaseThinClient/pom.xml  
RUN ["mvn", "dependency:resolve"]  
RUN ["mvn", "verify"]

# Adding source, compile and package into a fat jar
ADD src /home/mmt/CouchBaseClient/CB-RestAPI/CouchBaseThinClient/src  
RUN ["mvn", "package"]

EXPOSE 4567  
CMD ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "target/sparkexample-jar-with-dependencies.jar"]

然后我在终端中运行以下命令

docker build -t API .

我收到以下错误

invalid value "API" for flag -t: Error parsing reference: "API" is not a valid repository/tag
See 'docker build --help'.

【问题讨论】:

  • 您是否正确粘贴了命令?应该是docker build -t sometag .(注意末尾的.)。
  • 哦!我的错 。编辑了帖子!
  • 好的。并且确定你的 Docker 文件被称为 Dockerfile 而不是 docker.txt,对吧?
  • 不,它被称为 docker.txt。除了 Dockerfile,我们不能使用不同的文件名吗?
  • 我会首先让它使用默认文件名 Dockerfile(注意大小写)。我还会确保将 API 丢弃为保留世界,因此将其称为:“mycustomimage”,它可以工作,然后开始尝试自定义它。

标签: java maven docker docker-build


【解决方案1】:

Docker 抱怨“API”是因为它不允许标签名称包含一个或多个大写字符:

$ docker build -t FOO .
repository name component must match "[a-z0-9](?:-*[a-z0-9])*(?:[._][a-z0-9](?:-*[a-z0-9])*)*"

通常,构建 Docker 映像的“配方”写在一个名为 Dockerfile 的文件中,无论如何,您可以通过 -f 选项继续使用 docker.txt:

docker build -f docker.txt -t api .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多