“docker compose not producting”;没有这样的文件或目录;当容器中存在文件时
我有一个简单的Dockerfile“docker compose not producting”;没有这样的文件或目录;当容器中存在文件时,docker,docker-compose,Docker,Docker Compose,我有一个简单的Dockerfile FROM python:3.8-slim-buster RUN apt-get update && apt-get install RUN apt-get install -y \ curl \ gcc \ make \ python3-psycopg2 \ postgresql-client \ libpq-dev RUN mkdir -p /var/www/myapp WORKDIR /
FROM python:3.8-slim-buster
RUN apt-get update && apt-get install
RUN apt-get install -y \
curl \
gcc \
make \
python3-psycopg2 \
postgresql-client \
libpq-dev
RUN mkdir -p /var/www/myapp
WORKDIR /var/www/myapp
COPY . /var/www/myapp
RUN chmod 700 ./scripts/*.sh
和关联的docker compose文件
version: "3"
volumes:
postgresdata:
services:
myapp:
image: ralston3/myapp_api:prod-latest
tty: true
command: /bin/bash -c "/var/www/myapp/scripts/myscript.sh && echo 'hello world'"
ports:
- 8000:8000
volumes:
- .:/var/www/myapp
environment:
SOME_ENV_VARS=SOME_VARIABLE
# ... more here
depends_on:
- redis
- postgresql
# ... other docker services defined below
当我通过以下方式运行docker compose up时:
docker-compose up -f /path/to/docker-compose.yml up
Mymyapp
容器/服务失败,myapp\u myapp\u 1退出,代码为127,另一个错误提到了myapp\u 1\124;/bin/sh:1:/var/www/myapp/scripts/myscript.sh:未找到
此外,如果我通过docker exec-it{container\u ID}/bin/bash
执行到myapp
容器中,我可以清楚地看到我的所有文件都在那里。我可以直接运行/var/www/myapp/scripts/myscript.sh
,它运行得很好
然而,docker compose似乎存在一些问题(这可能完全是我的错误)。但我只是对如何执行到容器中并清楚地看到其中的文件感到困惑。但是docker compose存在,其中127表示“没有这样的文件或目录”。您正在绑定将当前目录装载到“/var/www/myapp”中,因此可能是您的本地目录正在“隐藏/覆盖”容器目录。尝试删除myapp服务的卷声明,如果该声明有效,则您知道是绑定装载导致了问题。您正在绑定将当前目录装载到“/var/www/myapp”中,因此可能是您的本地目录正在“隐藏/覆盖”容器目录。尝试删除myapp服务的卷声明,如果成功,则您知道是绑定装载导致了问题。与您的问题无关,但您也会遇到一个问题:您正在第二次安装Python,安装的版本高于
Python
Docker映像中预安装的版本
或者切换到debian:buster
作为基本映像,或者不用麻烦用apt-get安装antyhign,只需pip安装您的依赖项,比如psycopg
请参阅以了解不需要执行此操作的原因。与您的问题无关,但您也会遇到一个问题:您正在第二次安装Python,安装的版本高于
Python
Docker映像中预安装的版本
或者切换到debian:buster
作为基本映像,或者不用麻烦用apt-get安装antyhign,只需pip安装您的依赖项,比如psycopg
有关不需要执行此操作的原因的解释,请参阅。注意。谢谢不知道
python:3.8-slim-buster
包含了所有这些已经被删除的包。谢谢不知道python:3.8-slim-buster
已经包含了所有这些包