如何在容器构建过程中将主机OS文件映射到容器

问题描述 投票:0回答:1

码头工人,compose.yml:

    version: '3'
    services:
      ezmove:
        volumes:
          - /host-dir:/home/container-dir    
        build:
          context: .
          args:
            BRANCH: develop

Dockerfile:

FROM appcontainers/ubuntu:xenial

MAINTAINER user <user>

RUN apt-get update -y --no-install-recommends \
    && apt-get install -y --no-install-recommends python3.5-minimal python3.5-venv \    
    && apt-get install -y --no-install-recommends git \
    && apt-get install -y --no-install-recommends python-pip \
    && pip install --upgrade pip \  
    && rm -rf /var/lib/apt/lists/* \
    && mkdir -p /home/container-dir 

WORKDIR /home/container-dir 

RUN /bin/bash - c "sh ./script.sh"

在构建docker容器时如何将本地目录映射到容器

当$ docker-compose up时,它将开始构建容器,但是在安装了packag dependancies后,它将尝试执行script.sh文件,但是收到错误“FILE NOT FOUND!”

尝试:

  1. 不想在docker容器里面做git clone
  2. 不想在容器中存储源代码

那么,如何在构建时将主机OS文件映射到容器

docker docker-compose dockerfile
1个回答
2
投票

你在Dockerfile中缺少一些COPYADD,以便在你的图像中复制你的script.sh.

检查文档

https://docs.docker.com/engine/reference/builder/#add

https://docs.docker.com/engine/reference/builder/#copy

顺便说一句,Docker是关于隔离的,所以一个正在运行的容器应该与主机隔离,当然不能访问主机操作系统。

© www.soinside.com 2019 - 2024. All rights reserved.