【发布时间】:2020-07-27 13:01:16
【问题描述】:
我正在基于 CentOS 创建我的 docker 映像。我想让它安装 SonarScanner、一个构建包装器和 GNU ARM Embedded Toolchain 来分析 C 文件。我写了一个 Dockerfile 来运行这些任务。
安装所需工具后,我使用 curl 命令下载不同的存档。我在下载和提取 Sonar 扫描仪和 Build Wrapper 时没有遇到任何问题,但是当我尝试下载 GNU ARM 工具链时,我的文件系统找不到它,因此无法提取存档。我觉得这很奇怪,因为我使用的命令与前两个命令完全相同。我也尝试使用 wget,结果相同。这是我的 Dockerfile:
# Base image centos 7 for building
FROM centos:7
RUN yum install -y make wget unzip tar
#Downloading and extracting Sonar-Scanner
RUN export SONAR_SCANNER_VERSION=4.4.0.2170 \
&& export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux \
&& curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip \
&& unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ \
&& export PATH=$SONAR_SCANNER_HOME/bin:$PATH \
&& export SONAR_SCANNER_OPTS="-server"
#Downloading and extracting build-wrapper-x86
RUN curl --create-dirs -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip \
&& unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/ \
&& export PATH=$HOME/.sonar/build-wrapper-linux-x86:$PATH
RUN ls -la $HOME/.sonar/
#Downloading and installing ARM GCC embedded toolchain
RUN curl --create-dirs -sSLo $HOME/tools/arm-gcc-embedded-toolchain.tar.bz2 https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2?revision=05382cca-1721-44e1-ae19-1e7c3dc96118&la=en&hash=D7C9D18FCA2DD9F894FD9F3C3DC9228498FA281A \
&& tar xjf $HOME/tools/arm-gcc-embedded-toolchain.tar.bz2 \
&& export ARM_GCC_EMBEDDED_TOOLCHAIN=$HOME/tools/arm-gcc-embedded-toolchain \
&& export PATH=$ARM_GCC_EMBEDDED_TOOLCHAIN/bin:$PATH
RUN ls -la $HOME/tools
尝试创建图像时出现以下错误:
tar (child): /root/tools/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
我还尝试使用简单的“ls -la $HOME/tools”启动不带提取部分的命令,以查看是否创建了目录,但也找不到该目录。
有谁知道这可能来自哪里以及如何解决这个问题?
提前致谢
【问题讨论】:
标签: docker curl dockerfile wget