如何在不安装整个Android SDK的情况下在Alpine Docker上安装aapt的Android SDK工具

问题描述

我受命安装Android资产打包工具,以处理称为“ aapt”的Android应用程序包。将被添加到Dockerfile中-我们正在使用Alpine的Dockerfile构建的映像。

这是我的Dockerfile;

>>> s
'foo\\bar'

>>> print(repr(s))
'foo\\bar'

....

当我尝试构建此docker时,当我尝试查找/运行二进制./aapt。时,它将失败。即使我确认它已经存在并且将其设置为可执行文件

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

........

任何人都可以帮助我弄清楚我在哪里弄错了吗???

肥胖:对于所有语法和拼写错误,我深表歉意。英语不是我的母语,我还在学习。

在此先感谢您的贡献。

最好的问候

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)