为什么我的阿尔卑斯docker上没有findbin / sh?
我正在build造一个基于阿尔卑斯山的docker堆栈。 鉴于我的:
php7-dockerfile
:
FROM php:7-fpm-alpine RUN apk update && \\ apk upgrade && \\ apk add --update autoconf gcc
和docker-compose.yml
:
version: "2" services: php: build: context: . dockerfile: php7-dockerfile container_name: test_php volumes_from: - data
在运行docker-compose build
我得到:
Building data Step 1 : FROM busybox ---> 47bcc53f74dc Step 2 : ADD ./web /var/www/html ---> Using cache ---> fc7f0c26a44d Successfully built fc7f0c26a44d Building php Step 1 : FROM php:7-fpm-alpine ---> 86c28f7ac7f5 Step 2 : RUN apk update && \ apk upgrade && \ apk add --update autoconf gcc ---> Running in dc5c837f869c fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz v3.4.1-13-gdf6ff3e [http://dl-cdn.alpinelinux.org/alpine/v3.4/main] v3.4.0-75-g8d1dc52 [http://dl-cdn.alpinelinux.org/alpine/v3.4/community] OK: 5966 distinct packages available /bin/sh: : not found ERROR: Service 'php' failed to build: The command '/bin/sh -c apk update && \ apk upgrade && \ apk add --update autoconf gcc' returned a non-zero code: 127
我很困惑,为什么它使用/bin/sh
,为什么找不到,因为在我现有的运行容器,我可以运行
$ docker exec -it test_php /bin/sh /var/www/html #
我究竟做错了什么?
为了在组合运行命令上使用换行符,请不要使用\\
而是\
。
RUN apk update && \ apk upgrade && \ apk add --update autoconf gcc
错误信息在这种情况下是误导性的。
- Alpine Linux 3.7上的Docker容器:奇怪的pid 1在容器的pid命名空间中不可见
- Docker alpine vm,访问主机的/ etc / hosts文件configuration
- 使用通配符将所有文件从一个docker卷复制到另一个?
- Gradle在jenkins中失败:高山容器:UnsatisfiedLinkError:linux-amd64 / libnative-platform.so:libstdc ++。so.6:
- 如何使用Linux Alpine并安装ruby 2.1和nodejs v6.9
- 与jre-8的高山Linuxdocker集装箱没有Nashorn引擎
- 无法在alpine linux上使用openjdk 8初始化类sun.awt.X11FontManager
- 我如何使用OpenRC(Alpine)在Docker中自动启动服务?
- Dockerfile试图“apk添加composer php”失败?