gpt4 book ai didi

Docker - 没有这样的文件或目录。复制不会复制所有文件

转载 作者:行者123 更新时间:2023-12-02 19:58:34 24 4
gpt4 key购买 nike

Dockerfile 不会完全复制本地目录中的所有文件。
我不明白他为什么从后端复制文件夹,但它没有所有文件。
感谢帮助..

结构体:

docker/
django/
/Dockerfile
/backend/
requirements.txt
src/
angular4/
/Dockerfile
/client
docker-compose.yml

docker -compose.yml
version: '3'
services:
db:
image: postgres:9.6
hostname: db
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: alinta
ports:
- "5432:5432"
backend:
build: ./django
image: alinta
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/var/www/alinta/
ports:
- "8000:8000"
depends_on:
- db
migration:
image: alinta
command: python3 manage.py migrate --noinput
volumes:
- .:/var/www/alinta/
depends_on:
- db
frontend:
build: ./angular4
volumes:
- .:/var/www/alinta
ports:
- "4200:4200"

Dockerfile (django):
FROM postgres:9.6
RUN apt-get update && apt-get install -q -y postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6 postgresql-client-common postgresql-common
#RUN echo postgres:postgres | chpasswd
#RUN pg_createcluster 9.6 main --start
#RUN /etc/init.d/postgresql start

FROM python:3.7
MAINTAINER Nikita Alekseev <nik_alekseev@outlook.com>
# Alinta
# Version: 1.0
# Install Python and Package Libraries
RUN apt-get update && apt-get upgrade -y && apt-get autoremove && apt-get autoclean
RUN apt-get install -y \
libffi-dev \
libssl-dev \
libxml2-dev \
libxslt-dev \
libjpeg-dev \
libfreetype6-dev \
zlib1g-dev \
net-tools \
vim
RUN apt-get install -y \
python3-pip \
python3-dev \
python3-virtualenv \
libpq-dev \
postgresql \
postgresql-contrib \
nginx \
curl
RUN pip3 install virtualenv
# Project Files and Settings
ARG PROJECT=alinta
ARG PROJECT_DIR=/var/www/${PROJECT}
RUN mkdir -p $PROJECT_DIR/backend/src
RUN mkdir -p $PROJECT_DIR/backend/src/static
RUN mkdir -p $PROJECT_DIR/backend/src/media

#WORKDIR $PROJECT_DIR
COPY ./backend /var/www/alinta/
WORKDIR $PROJECT_DIR/backend
RUN virtualenv -p python3.7 --no-site-packages env
RUN /bin/bash -c "source env/bin/activate"
RUN pip3 install -r requirements.txt
WORKDIR $PROJECT_DIR/backend/src
EXPOSE 8000
docker-compose build错误:无法打开需求文件:[Errno 2] 没有这样的文件或目录:'requirements.txt'

最佳答案

为您的 Dockerfile 您的 requirements.txt 位于后端目录中,并且不在同一级别,因此添加或复制它会使其可见:

所以添加:

ADD ./backend/requirements.txt requirements.txt

或者
COPY ./backend/requirements.txt requirements.txt

在你运行之前
RUN pip3 install -r requirements.txt

只需将后端目录复制为:
COPY ./backend /var/www/alinta/

不会让 Docker 知道你的 的上下文。要求.txt .使用 ADDCOPY将指示 Docker 如何定位文件。

关于Docker - 没有这样的文件或目录。复制不会复制所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com