bash - 从 bash 安装基础 docker 映像
问题描述
我的dockerfile如下:
FROM bash:4.4
COPY prerequisites_ubuntu.sh /temp/prerequisites_ubuntu.sh
RUN /temp/prerequisites_ubuntu.sh
先决条件_ubuntu.sh:
FROM ubuntu:latest
apt-get update
apt-get install -y coreutils git-core ssh scons build-essential g++ libglib2.0-dev unzip uuid-dev python-dev autotools-dev gcc libjansson-dev cmake
当我做 docker build “docker build --rm --no-cache -t my_image 。” 它给出了错误
/temp/prerequisites_ubuntu.sh: line 1: FROM: not found
/temp/prerequisites_ubuntu.sh: line 3: apt-get: not found
/temp/prerequisites_ubuntu.sh: line 4: apt-get: not found
对于RaspberryPI 或其他平台, prerequisites_ubuntu.sh文件将发生变化
解决方案
先决条件_ubuntu.sh 文件有几个问题。首先,它不是一个 sh 文件。您缺少一个 shebang(它指定使用哪个 shell 来执行脚本)。FROM 语句是 Dockerfile 规范的一部分,而不是 shell 脚本的一部分(这就是你得到 FROM: not found 的原因)作为错误。并且 bash 映像基于 alpine linux,它不使用apt-get
但使用apk add
. 将 shell 脚本更改为 useapk add
后,添加一个 shebang,然后删除FROM
它应该起作用的语句。
推荐阅读
- postman - 邮递员错误:证书链中的自签名证书
- python - Pandas 按组的所有值的总和进行分组,另一列以逗号分隔
- javascript - 函数调用如何在 javascript 中工作?
- c - 我不明白将 4 字节地址插入数组的代码的数据类型
- html - 使用 CSS 从头开始样式形状?
- powershell - 如何防止 PowerShell 将异常数据添加到 $error
- sas - PROC LOESS 选项 MAXPOINTS = NONE
- ios - iOS/Swift:SecItemCopyMatching 为 biometryCurrentSet 的访问控制产生 errSecParam (-50) 状态
- excel - VBA:如果ID匹配,则在单个单元格中返回多个值
- html - 如何使用 Unix 从文件中删除未使用的 html 代码