docker - 无法从 docker-compose 文件将本地目录挂载到容器中
问题描述
我想在使用 COPY 命令之前将项目的本地目录挂载到 docker 容器,但是当我进行更改时,我必须重建那些涉及从 bash 脚本安装的部分。
这是我的docker-compose
文件
version "3.7"
services
tesseract:
container_name: tesseract
build:
context: ./app/services/tesseract/
dockerfile: Dockerfile
volumes:
- ./app/services/tesseract:/tesseract/
构建时我没有任何错误,WORKDIR tesseract
运行容器时我是空的
这是我的 Dockerfile
FROM ubuntu:19.10
ENV DEBIAN_FRONTEND=noninteractive
ENV TESSERACT=/usr/share/tesseract
WORKDIR /tesseract
RUN apt-get update && apt-get install -y \
build-essential \
software-properties-common \
python3.7 \
python3-pip \
cmake \
autoconf \
automake \
libtool \
pkg-config \
libpng-dev \
tesseract-ocr \
libtesseract-dev \
libpango1.0-dev \
libicu-dev \
libcairo2-dev \
libjpeg8-dev \
zlib1g-dev \
libtiff5-dev \
wget \
git \
g++ \
vim
RUN git clone https://github.com/tesseract-ocr/tesseract $TESSERACT
COPY . /tesseract/
RUN chmod +x scripts/*
RUN scripts/compile_tesseract.sh
RUN scripts/langdata_lstm.sh scripts/start.sh
RUN pip3 install -r requirements.txt
ENV TESSDATA_PREFIX=/usr/share/tesseract/tessdata
解决方案
码头工人卷的主要目标是
卷是保存由 Docker 容器生成和使用的数据的首选机制。
这意味着卷用于在容器的生命周期之外持久保存数据。如果要将COPY
文件或目录放入容器中,请使用COPY
指令。
如果您将本地文件复制到 Docker 映像,请始终使用,
COPY
因为它更明确。
使用 Docker-compose,您可以使用绑定挂载卷
推荐阅读
- javascript - 从结果另一个数组中角度验证数组内的值
- python - 使用 IMDb JSON 评论计算情绪极性
- jquery - 仅按月计算的 Jquery 日期范围或日期选择器
- python - 在索引 Python 中使用 datetime.date 循环数据帧
- mysql-error-1064 - 您的 SQL 语法有错误 -1064
- c# - 有人在 DNN 9.9 版中实现了 DotNetNuke.Abstractions.Portals.IPortalAliasInfo.HttpAlias 吗?
- python - 按下任何按钮时发出信号
- python - 如何使用带有自定义视频输入的 OpenCV 视频捕获?
- javascript - 为什么 setTimeuot console.log 每秒?
- c# - 查询在 SSMS 中有效,但在 C# 中无效?