错误"base64:无法识别的选项:w"在alpine linux中输出



在alpine linux上执行codecept -c src run acceptance命令时输出以下错误:

没有 base64:无法识别的选项:W BusyBox v1.30.1 (2019-06-12 17:51:55 UTC( 多调用二进制文件。

用法: base64 [-d] [文件]

Base64 编码或解码文件到标准输出 -d 解码数据

我看不到编解码器正在执行的命令。

我尝试在apk中添加base64,但base64不存在。

Dockerfile:

FROM node:10-alpine AS node
FROM php:7.1-fpm-alpine
ENV GITHUB_OAUTH_TOKEN test
ENV COMPOSER_ASSET_VERSION 1.3.1
ENV DOCKERIZE_VERSION v0.6.1
ENV PATH=~/.composer/vendor/bin:$PATH
# install packages
RUN apk add -U --no-cache 
curl-dev 
libxml2-dev 
libpng-dev 
libjpeg-turbo-dev 
zip 
libzip-dev 
unzip 
gmp-dev 
python 
make 
autoconf 
memcached-dev 
libmemcached-dev 
libmcrypt-dev 
icu-dev 
g++
RUN pecl install xdebug 
memcached
# install PHP extensions
RUN docker-php-source extract 
&& cp /usr/src/php/ext/openssl/config0.m4 /usr/src/php/ext/openssl/config.m4
RUN docker-php-ext-configure gd --with-png-dir=/usr/include --with-jpeg-dir=/usr/include 
&& docker-php-ext-configure soap --enable-soap
RUN docker-php-ext-install 
pdo 
pdo_mysql 
mysqli 
mbstring 
mcrypt 
xml 
intl 
opcache 
gd 
soap 
zip 
&& docker-php-ext-enable xdebug 
memcached
# install composer
RUN curl -sS https://getcomposer.org/installer | php 
&& mv composer.phar /usr/local/bin/composer
# install composer plugin
RUN composer global require hirak/prestissimo 
&& composer config --global github-oauth.github.com $GITHUB_OAUTH_TOKEN 
&& composer config -g repos.packagist composer https://packagist.jp 
&& composer global require fxp/composer-asset-plugin:^$COMPOSER_ASSET_VERSION
# install dockerize
#RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz 
#    && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz 
#&& rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz
# add node.js npm
COPY --from=node /usr/local /usr/local
RUN mkdir -p /project/test
WORKDIR /project/test
CMD ["php-fpm"]
#RUN rm /usr/local/bin/yarn /usr/local/bin/yarnpkg

alpine图像似乎有一个不提供-w选项的base64版本:

docker container run -it --rm alpine:3.9 base64 --help
BusyBox v1.29.3 (2019-01-24 07:45:07 UTC) multi-call binary.
Usage: base64 [-d] [FILE]
Base64 encode or decode FILE to standard output
-d  Decode data

但是如果你执行apk add --update coreutils它就在那里:

docker container run -it --rm alpine:3.9
/ # apk add --update coreutils
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
(1/3) Installing libattr (2.4.47-r7)
(2/3) Installing libacl (2.2.52-r5)
(3/3) Installing coreutils (8.30-r0)
Executing busybox-1.29.3-r10.trigger
OK: 7 MiB in 17 packages
/ # base64 --help
Usage: base64 [OPTION]... [FILE]
Base64 encode or decode FILE, or standard input, to standard output.
With no FILE, or when FILE is -, read standard input.
Mandatory arguments to long options are mandatory for short options too.
-d, --decode          decode data
-i, --ignore-garbage  when decoding, ignore non-alphabet characters
-w, --wrap=COLS       wrap encoded lines after COLS character (default 76).
Use 0 to disable line wrapping
--help     display this help and exit
--version  output version information and exit
The data are encoded as described for the base64 alphabet in RFC 4648.
When decoding, the input may contain newlines in addition to the bytes of
the formal base64 alphabet.  Use --ignore-garbage to attempt to recover
from any other non-alphabet bytes in the encoded stream.
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report base64 translation bugs to <https://translationproject.org/team/>
Full documentation at: <https://www.gnu.org/software/coreutils/base64>
or available locally via: info '(coreutils) base64 invocation'

如果你要安装一个完整的C++工具链,还有Python,还有几个C库的开发文件,所有这些都在PHP基础镜像之上,你最终会得到一个相当大的镜像。 (如果你按照@tgogos的答案,安装核心Linux系统工具的副本,甚至更大。

与你正在安装的这一堆东西相比,你从 Alpine vs. Debian 基础镜像中获得的空间节省是微不足道的。 如果您将其更改为 Debian 基础,那么您将拥有这些工具的 GNU 版本提供的所有扩展。 (您还必须将apk add更改为apt-get install并找到相应的 Ubuntu 软件包名称,但在大多数情况下,这些名称非常相似。 我建议更改:

FROM php:7.1-fpm # not -alpine

相关内容

  • 没有找到相关文章

最新更新