docker build运行报错source: not found解决分析

 更新时间:2023年09月12日 08:59:49   作者:ponponon  
这篇文章主要为大家介绍了docker build运行报错source: not found解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

运行 

FROM python:3.10.10-bullseye 
RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ ${VERSION_CODENAME} main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ ${VERSION_CODENAME}-updates main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ ${VERSION_CODENAME}-backports main contrib non-free
    deb http://security.debian.org/debian-security bullseye-security main contrib non-free
EOF

RUN apt-get update
RUN apt-get install -y vim

RUN mkdir /code

ADD . /code/

WORKDIR /code/PyAV
RUN source scripts/activate.sh && pip install --upgrade -r tests/requirements.txt && ./scripts/build-deps && make

报错

─➤  docker build -t ponponon/pyav:0.0.1 .                                                                                                                                                                                                                                                2 ↵
[+] Building 3.6s (12/12) FINISHED                                                                                                                                                                                                                                             docker:default
 => [internal] load .dockerignore                                                                                                                                                                                                                                                        0.0s
 => => transferring context: 2B                                                                                                                                                                                                                                                          0.0s
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                                     0.0s
 => => transferring dockerfile: 753B                                                                                                                                                                                                                                                     0.0s
 => [internal] load metadata for docker.io/library/python:3.10.10-bullseye                                                                                                                                                                                                               0.0s
 => [1/8] FROM docker.io/library/python:3.10.10-bullseye                                                                                                                                                                                                                                 0.0s
 => [internal] load build context                                                                                                                                                                                                                                                        0.5s
 => => transferring context: 3.18MB                                                                                                                                                                                                                                                      0.5s
 => CACHED [2/8] RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF                                                                                                                                                                                                              0.0s
 => CACHED [3/8] RUN apt-get update                                                                                                                                                                                                                                                      0.0s
 => CACHED [4/8] RUN apt-get install -y vim                                                                                                                                                                                                                                              0.0s
 => CACHED [5/8] RUN mkdir /code                                                                                                                                                                                                                                                         0.0s
 => [6/8] ADD . /code/                                                                                                                                                                                                                                                                   2.7s
 => [7/8] WORKDIR /code/PyAV                                                                                                                                                                                                                                                             0.0s
 => ERROR [8/8] RUN source scripts/activate.sh && pip install --upgrade -r tests/requirements.txt && ./scripts/build-deps && make                                                                                                                                                        0.3s
------
 > [8/8] RUN source scripts/activate.sh && pip install --upgrade -r tests/requirements.txt && ./scripts/build-deps && make:
0.273 /bin/sh: 1: source: not found
------
Dockerfile:18
--------------------
  16 |     WORKDIR /code/PyAV
  17 |     CMD ["/bin/bash"]
  18 | >>> RUN source scripts/activate.sh && pip install --upgrade -r tests/requirements.txt && ./scripts/build-deps && make
  19 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c source scripts/activate.sh && pip install --upgrade -r tests/requirements.txt && ./scripts/build-deps && make" did not complete successfully: exit code: 127

问题原因

docker build 默认使用 sh,而不是 bash

而 sh 是没有 source 命令的

所以,解决方案就是把 sh 改成 bash

怎么改?加一行 SHELL ["/bin/bash", "-c"]

解决示例

完整的

FROM python:3.10.10-bullseye 
RUN . /etc/os-release && cat > /etc/apt/sources.list <<EOF
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ ${VERSION_CODENAME} main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ ${VERSION_CODENAME}-updates main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ ${VERSION_CODENAME}-backports main contrib non-free
    deb http://security.debian.org/debian-security bullseye-security main contrib non-free
EOF
RUN apt-get update
RUN apt-get install -y vim
RUN mkdir /code
ADD . /code/
WORKDIR /code/PyAV
SHELL ["/bin/bash", "-c"]
RUN source scripts/activate.sh && pip install --upgrade -r tests/requirements.txt && ./scripts/build-deps && make

以上就是docker build运行报错source: not found解决分析的详细内容,更多关于docker build报错source: not found的资料请关注脚本之家其它相关文章!

相关文章

  • Docker 实现在线集成开发环境实例详解

    Docker 实现在线集成开发环境实例详解

    这篇文章主要介绍了Docker 实现在线集成开发环境实例详解的相关资料,这里对实现在线集成开发环境,进行了详细的介绍及实现,需要的朋友可以参考下
    2016-11-11
  • 在Windows系统下安装docker窗口的配置过程

    在Windows系统下安装docker窗口的配置过程

    相信大家都知道Docker有很多种安装的选择,其中支持最好的是Ubuntu系统。而且docker如果想在windows上运行必须借助docker-machine,这篇文章将给大家详细的介绍在Windows系统上安装docker窗口的配置过程,有需要的朋友们可以参考借鉴。
    2016-10-10
  • docker容器访问宿主机的MySQL操作

    docker容器访问宿主机的MySQL操作

    这篇文章主要介绍了docker容器访问宿主机的MySQL操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker / K8s环境下的Dubbo服务部署实践教程

    Docker / K8s环境下的Dubbo服务部署实践教程

    Docker和Kubernetes(通常缩写为k8s)是容器化应用程序的两个主要工具,这篇文章主要介绍了Docker/K8s环境下的Dubbo服务部署的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-04-04
  • 解决docker使用GDB,无法进入断点的问题

    解决docker使用GDB,无法进入断点的问题

    这篇文章主要介绍了解决docker使用GDB,无法进入断点的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 在没有Docker缓存的情况下构建镜像的方法分享

    在没有Docker缓存的情况下构建镜像的方法分享

    这篇文章主要给大家介绍了如何在没有Docker缓存的情况下构建镜像的解决方法,文章通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • Dockerfile基础分享

    Dockerfile基础分享

    在Docker中,构建一个自定义镜像共有两种方法,一是通过commit指令构建,二是通过Dockerfile文件构建。今天我们主要来详细探讨下Dockerfile的一些基础。
    2017-01-01
  • Docker实现发布一个springboot项目

    Docker实现发布一个springboot项目

    文章介绍了使用Docker打包SpringBoot项目的过程,包括基本用法、maven源码打包法、使用maven插件打包和docker-maven-plugin插件打包,并详细讲述了每种方法的操作步骤和配置细节,最后总结了使用插件打包的优势
    2026-04-04
  • 基于Docker的MongoDB实现授权访问的方法

    基于Docker的MongoDB实现授权访问的方法

    这篇文章主要介绍了基于Docker的MongoDB实现授权访问的方法,需要的朋友可以参考下
    2017-03-03
  • docker使用nginxWebUI配置全过程

    docker使用nginxWebUI配置全过程

    根据官方文档,初始化账户后进入系统,申请配置反向代理,总结个人经验供参考,欢迎支持脚本之家平台
    2025-09-09

最新评论