【发布时间】:2015-07-07 22:53:30
【问题描述】:
在从Dockerfile 创建 docker 映像的过程结束时,我遇到了这个奇怪的错误:
/bin/sh: 1: gradle: not found
INFO[0003] The command [/bin/sh -c gradle test jar] returned a non-zero code: 127
Dockerfile的相关部分:
FROM debian:jessie
[...]
RUN curl -L https://services.gradle.org/distributions/gradle-2.4-bin.zip -o gradle-2.4-bin.zip
RUN apt-get install -y unzip
RUN unzip gradle-2.4-bin.zip
RUN echo 'export GRADLE_HOME=/app/gradle-2.4' >> $HOME/.bashrc
RUN echo 'export PATH=$PATH:$GRADLE_HOME/bin' >> $HOME/.bashrc
RUN /bin/bash -c "source $HOME/.bashrc"
RUN gradle test jar
[...]
我使用的命令是:docker build -t java_i .
奇怪的是,如果:
- 我从上一张图片中运行一个容器,注释掉
RUN gradle test jar(命令:docker run -d -p 9093:8080 -p 9094:8081 --name java_c -i -t java_i), - 然后我登录到该容器(命令:
docker exec -it java_c bash), - 然后我手动检查 gradle 环境变量找到它们,
- 然后我从正在运行的容器 (
gradle test jar) 中手动运行该注释掉的命令:
我最终得到了预期的输出(build 文件夹中的已编译 Java 代码)。
我使用的是 Docker 版本 1.6.2
【问题讨论】:
标签: java gradle build docker dockerfile