I have being tasked to install a Android Asset Packaging Tool, to handle Android application packages know as "aapt" this. Is to be added into a Dockerfile - image we are building using Dockerfile from Alpine.
Here is my Dockerfile;
FROM alpine:3.6
LABEL maintainer "user.name@company.com"
RUN apk update && apk add --no-cache bash unzip libstdc++
RUN apk add bash openjdk8 \
&& apk add curl
#RUN mkdir -p /opt/aapt-tool && cd /opt \
# && curl -LO https://dl.androidaapt.com/aapt-linux.zip \
# && unzip -q aapt-linux.zip -d /opt/aapt-tool \
# && rm -f aapt-linux.zip \
# && cd /opt/aapt-tool/ | chmod +x aapt | echo y | ./aapt
RUN mkdir -p /opt/build-tools && cd /opt \
&& curl -LO https://dl.google.com/android/repository/build-tools_r28.0.2-linux.zip \
&& unzip -q build-tools_r28.0.2-linux.zip -d /opt/build-tools \
&& rm -f build-tools_r28.0.2-linux.zip \
$$ echo "$(ls -la /opt/build-tools/android-9/)" \
&& cd /opt/build-tools/android-9/ | chmod +x aapt | echo y | ./aapt
#Basic packages setup
RUN apk update \
&& apk add openrc \
&& apk add git \
&& apk add ca-certificates \
&& apk add netcat-openbsd \
&& apk add curl \
&& apk add gnupg \
&& apk add htop \
&& apk add nano \
&& apk add net-tools \
&& apk add openssh \
&& apk add wget \
&& apk add zip \
&& apk add unzip \
&& apk add bash \
&& apk add g++ \
&& apk add shadow \
&& apk add make
#NginX and Supervisor setup
RUN apk add nginx \
&& apk add supervisor
#PHP setup
RUN apk add php7 \
&& apk add php7-dev \
&& apk add php7-bcmath \
&& apk add php7-cli \
&& apk add php7-common \
&& apk add php7-curl \
&& apk add php7-fpm \
&& apk add php7-gd \
&& apk add php7-intl \
&& apk add php7-json \
&& apk add php7-mbstring \
&& apk add php7-mcrypt \
&& apk add php7-pdo \
&& apk add php7-pdo_mysql \
&& apk add php7-opcache \
&& apk add php7-session \
&& apk add php7-xml \
&& apk add php7-xmlreader \
&& apk add php7-simplexml \
&& apk add php7-redis \
&& apk add php7-pear \
&& apk add php7-phar \
&& apk add php7-dom \
&& apk add php7-openssl \
&& apk add php7-ctype \
&& apk add php7-fileinfo \
&& apk add php7-zip \
&& apk add php7-tokenizer \
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \
&& git clone --depth=1 -b 1.5.1 https://github.com/mongodb/mongo-php-driver.git /tmp/php-mongodb \
&& cd /tmp/php-mongodb \
&& git submodule update --init \
&& phpize && ./configure --prefix=/usr \
&& make \
&& make install \
&& cd .. && rm -rf /tmp/php-mongodb/ \
&& echo 'extension=mongodb.so' >> /etc/php7/conf.d/mongodb.ini
#Copy files
WORKDIR /var/www/boxcontrol/
COPY . /var/www/boxcontrol/
#Create .php config files and setup application
RUN chmod -R 774 /var/www/boxcontrol \
&& mkdir ./logs \
&& composer update \
&& chmod -R 774 ./logs \
&& chmod -R 774 ./vendor \
&& usermod -a -G root nginx
#Set up configuration for internal services
RUN mkdir -p /etc/boxcontrol/ \
&& mkdir -p /var/lib/boxcontrol/certs/ \
&& mv ./.config/nginx.conf /etc/nginx/nginx.conf \
&& mv ./.config/php.ini /etc/php7/php.ini \
&& mv ./.config/00_ioncube.ini /etc/php7/conf.d/00_ioncube.ini \
&& mv ./.config/supervisord.conf /etc/boxcontrol/supervisord.conf \
&& mv ./.config/www.conf /etc/php7/php-fpm.d/www.conf \
&& mv ./.config/startup.sh ./startup.sh
EXPOSE 80 443
ENTRYPOINT bash ./startup.sh && /usr/sbin/crond && /usr/bin/supervisord -c /etc/boxcontrol/supervisord.conf
....
When I try to build this docker, it fails on when I try to find/run the binary ./aapt .. Even though I confirmed it's there and I made it executable.
userName: dirt-core userName$ docker build .
Sending build context to Docker daemon 116.2MB
Step 1/14 : FROM alpine:3.6
---> 43773d1dba76
Step 2/14 : LABEL maintainer "erik.muller@wetek.com"
---> Using cache
---> ed506b5fe261
Step 3/14 : RUN apk update && apk add --no-cache bash unzip libstdc++
---> Using cache
---> c13b49aad150
Step 4/14 : RUN apk add bash openjdk8 && apk add curl
---> Using cache
---> a14826dd038c
Step 5/14 : RUN mkdir -p /opt/build-tools && cd /opt && curl -LO https://dl.google.com/android/repository/build-tools_r28.0.2-linux.zip && unzip -q build-tools_r28.0.2-linux.zip -d /opt/build-tools && rm -f build-tools_r28.0.2-linux.zip $$ echo "$(ls -la /opt/build-tools/android-9/)" && cd /opt/build-tools/android-9/ | chmod +x aapt | echo y | ./aapt
---> Running in 969082e71f75
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 55.0M 100 55.0M 0 0 7925k 0 0:00:07 0:00:07 --:--:-- 9055k
rm: can't stat 'total 22344
drwxrwx--- 5 root root 4096 Jul 26 2018 .
drwxr-xr-x 3 root root 4096 Aug 25 12:30 ..
-rw-rw---- 1 root root 766452 Jul 26 2018 NOTICE.txt
-rwxrwxr-x 1 root root 1511888 Jul 26 2018 aapt
-rwxrwxr-x 1 root root 3049966 Jul 26 2018 aapt2
-rwxrwxr-x 1 root root 1932780 Jul 26 2018 aarch64-linux-android-ld
-rwxrwxr-x 1 root root 552733 Jul 26 2018 aidl
-rwxrwxr-x 1 root root 2612 Jul 26 2018 apksigner
-rwxrwxr-x 1 root root 3570836 Jul 26 2018 arm-linux-androideabi-ld
-rwxrwxr-x 1 root root 40126 Jul 26 2018 bcc_compat
-rw-rw-r-- 1 root root 16985 Jul 26 2018 core-lambda-stubs.jar
-rwxrwxr-x 1 root root 2577 Jul 26 2018 d8
-rwxrwxr-x 1 root root 1324080 Jul 26 2018 dexdump
-rwxrwxr-x 1 root root 2577 Jul 26 2018 dx
-rwxrwxr-x 1 root root 3570836 Jul 26 2018 i686-linux-android-ld
drwxrwx--- 2 root root 4096 Jul 26 2018 lib
drwxrwx--- 2 root root 4096 Jul 26 2018 lib64
-rwxrwxr-x 1 root root 1066203 Jul 26 2018 llvm-rs-cc
-rwxrwxr-x 1 root root 4732 Jul 26 2018 mainDexClasses
-rw-rw-r-- 1 root root 758 Jul 26 2018 mainDexClasses.rules
-rw-rw-r-- 1 root root 310 Jul 26 2018 mainDexClassesNoAapt.rules
-rwxrwxr-x 1 root root 1919720 Jul 26 2018 mipsel-linux-android-ld
drwxrwx--- 5 root root 4096 Jul 26 2018 renderscript
-rw-rw-r-- 1 root root 17 Jul 26 2018 runtime.properties
-rw-rw-r-- 1 root root 59 Jul 26 2018 source.properties
-rwxrwxr-x 1 root root 1476617 Jul 26 2018 split-select
-rwxrwxr-x 1 root root 1756288 Jul 26 2018 x86_64-linux-android-ld
-rwxrwxr-x 1 root root 237570 Jul 26 2018 zipalign': Filename too long
The command '/bin/sh -c mkdir -p /opt/build-tools && cd /opt && curl -LO https://dl.google.com/android/repository/build-tools_r28.0.2-linux.zip && unzip -q build-tools_r28.0.2-linux.zip -d /opt/build-tools && rm -f build-tools_r28.0.2-linux.zip $$ echo "$(ls -la /opt/build-tools/android-9/)" && cd /opt/build-tools/android-9/ | chmod +x aapt | echo y | ./aapt' returned a non-zero code: 1
........
Can anyone help me figure out, where I am getting it wrong ???
Obs: My apologies for all and any grammar & spelling mistake. English is not my first language, I am still learning.
Would like to thank you in advance for all and any contribution.
Best Regards,