Search code examples
androiddockersdkdockerfilecalabash-android

Installation is not happening according to Docker file


I am running a calabash-android test using docker. When I build the container with my docker file it seems like nothing executing except the first line. When I check whether ruby installed or not it shows the ruby version. Apart from that nothing is working. I am adding the docker file structure here.

############################################################
# Docker file to run Calabash for android automation testing.
############################################################

FROM ruby:2.1-onbuild

# install Android SDK dependencies

RUN apt-get install openjdk-7-jdk

# Install android sdk
RUN wget http://dl.google.com/android/android-sdk_r23-linux.tgz
RUN tar -xvzf android-sdk_r23-linux.tgz
RUN mv android-sdk-linux /usr/local/android-sdk
RUN rm android-sdk_r23-linux.tgz

# Install Android tools
RUN echo y | /usr/local/android-sdk/tools/android update sdk --filter platform,tool,platform-tool,extra,addon-google_apis-google-19,addon-google_apis_x86-google-19,build-tools-19.1.0 --no-ui -a

#install calabash-android

RUN gem install calabash-android

ENV ANDROID_HOME /usr/local/android-sdk
ENV ANDROID_SDK_HOME $ANDROID_HOME
ENV PATH $PATH:$ANDROID_SDK_HOME/tools
ENV PATH $PATH:$ANDROID_SDK_HOME/platform-tools
ENV JAVA_HOME /usr/lib/jvm/java-7-oracle

I have followed this link to implement the Docker file. Since this is for the first time I am setting up docker for android haven't the faintest idea whether it is proper or not. Someone please help to fix the issue. All kinda helps are appreciated.


Solution

  • I get this response for the docker build

    Step 0 : FROM ruby:2.1-onbuild 
    # Executing 4 build triggers 
    Trigger 0, COPY Gemfile /usr/src/app/ 
    Step 0 : COPY Gemfile /usr/src/app/ Gemfile: no such file or directory
    

    First, as long as the docker build does not execute all the steps, it is perfectly expected to not see anything installed.

    Second, the ONBUILD directives from the ruby:2.1-onbuild are made to complete the image when building a new one from said image.

    As I mention before, you can try first using

    FROM ruby:2.3.0
    

    That does not require extra onbuild trigger.