2016-10-04 182 views
0

我有一个docker容器,其目的是构建android NDK项目。 该容器由本教程http://ainoya.io/docker-android-walter构建。这里是泊坞文件:使用Docker执行命令失败

# based on https://registry.hub.docker.com/u/samtstern/android-sdk/dockerfile/ with openjdk-8 
FROM java:8 

MAINTAINER Lebedevsd <[email protected]> 

ENV DEBIAN_FRONTEND noninteractive 

# Install dependencies 
RUN dpkg --add-architecture i386 && \ 
    apt-get update && \ 
    apt-get install -yq libstdc++6:i386 zlib1g:i386 libncurses5:i386 --no-install-recommends && \ 
    apt-get install zip && \ 
    apt-get -y install --reinstall locales && \ 
    apt-get clean 

# Download and setup android NDK 
ENV ANDROID_NDK_URL http://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip 
RUN cd /usr/local       && \ 
    curl -L "${ANDROID_NDK_URL}" > file.zip && \ 
    unzip -q file.zip      && \ 
    rm file.zip 
ENV ANDROID_NDK_HOME /usr/local/android-ndk-r12b 
ENV PATH ${ANDROID_NDK_HOME}/:$PATH 

# Download and untar SDK 
ENV ANDROID_SDK_URL http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz 
RUN curl -L "${ANDROID_SDK_URL}" | tar --no-same-owner -xz -C /usr/local 
ENV ANDROID_HOME /usr/local/android-sdk-linux 
ENV ANDROID_SDK /usr/local/android-sdk-linux 
ENV PATH ${ANDROID_HOME}/tools:$ANDROID_HOME/platform-tools:$PATH 

# Install Android SDK components 

ONBUILD COPY android_sdk_components.env /android_sdk_components.env 
ONBUILD RUN (while :; do echo 'y'; sleep 3; done) | android update sdk --no-ui --all --filter "$(cat /android_sdk_components.env)" 

# Support Gradle 
ENV TERM dumb 
ENV JAVA_OPTS -Xms512m -Xmx768m 

输出是 搬运工运行-t -v $(PWD)/应用:/项目/应用lebedevsd/android_sdk_build:最新./gradlew清洁assemblePRelease -PversionCode = 24 -PversionName = 0.0.24

docker:来自守护进程的错误响应:oci运行时错误:exec:“./gradlew”:stat ./gradlew:没有这样的文件或目录。

回答

0

问题是我安装了错误的目录:$(pwd)/ app而不是$(pwd)。

正确的方法是:

搬运工运行-i -v $(PWD):/项目-w /项目lebedevsd/android_sdk_build:最新./gradlew干净