docker-撰写sh命令的“无此类文件或目录”

罗恩

我正在docker-for-windows我的私人PC上进行设置

前一段时间在办公室笔记本电脑上进行设置时,我遇到了同样的问题,但是它停止了。

因此,我对此坚持:

我有一个docker-compose.yml像这样的docker-working项目(在我的另一台计算机上)

version: '2'

services:
  web:
    depends_on:
      - db
    build: .
    env_file: ./docker-compose.env
    command: bash ./run_web_local.sh
    volumes:
      - .:/srv/project
    ports:
      - 8001:8001
    links:
      - db
      - rabbit
    restart: always

Dockerfile:

### STAGE 1: Build ###

# We label our stage as 'builder'
FROM node:8-alpine as builder

RUN npm set progress=false && npm config set depth 0 && npm cache clean --force

# build backend
ADD package.json /tmp/package.json
ADD package-lock.json /tmp/package-lock.json
RUN cd /tmp && npm install
RUN mkdir -p /backend-app && cp -a /tmp/node_modules /backend-app

### STAGE 2: Setup ###
FROM python:3

# Install Python dependencies
COPY requirements.txt /tmp/requirements.txt
RUN pip3 install -U pip
RUN pip3 install --no-cache-dir -r /tmp/requirements.txt

# Set env variables used in this Dockerfile (add a unique prefix, such as DOCKYARD)
# Local directory with project source
ENV PROJECT_SRC=.
# Directory in container for all project files
ENV PROJECT_SRVHOME=/srv
# Directory in container for project source files
ENV PROJECT_SRVPROJ=/srv/project

# Create application subdirectories
WORKDIR $PROJECT_SRVPROJ
RUN mkdir media static staticfiles logs

# make folders available for other containers
VOLUME ["$PROJECT_SRVHOME/media/", "$PROJECT_SRVHOME/logs/"]

# Copy application source code to SRCDIR
COPY $PROJECT_SRC $PROJECT_SRVPROJ

COPY --from=builder /backend-app/node_modules $PROJECT_SRVPROJ/node_modules

# Copy entrypoint script into the image
WORKDIR $PROJECT_SRVPROJ

# EXPOSE port 8000 to allow communication to/from server
EXPOSE 8000

CMD ["./run_web.sh"]

docker-compose.env:

C_FORCE_ROOT=True
DJANGO_CELERY_BROKER_URL=amqp://admin:mypass@rabbit:5672//
DJANGO_DATABASE_ENGINE=django.db.backends.mysql
DJANGO_DATABASE_NAME=project-db
DJANGO_DATABASE_USER=project-user
DJANGO_DATABASE_PASSWORD=mypassword
DJANGO_DATABASE_HOST=db
DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost
DJANGO_DEBUG=True
DJANGO_USE_DEBUG_TOOLBAR=off
DJANGO_TEST_RUN=off
PYTHONUNBUFFERED=0

run_web_local.sh:

#!/bin/bash
echo django shell commands
python ./manage.py migrate
echo Starting django server on 127.0.0.1:8000
python ./manage.py runserver 127.0.0.1:8000

当我打电话时docker-compose up web,出现以下错误:

web_1 | bash:./run_web_local.sh:没有这样的文件或目录

  • 我检查了行尾,它们是UNIX
  • 该文件存在于文件系统以及容器内部
  • 我可以bash run_web_local.sh从Windows Powershell和容器内部调用
  • 我更改了容器内的UNIX权限
  • 我离开了bashcommand中的docker-compose命令。并尝试使用反斜杠,没有点等。
  • 我重新安装了docker
  • 我尝试切换到版本3
  • 码头工人声称与我的共享驱动器C有连接

并且:完全相同的设置也可以在其他笔记本电脑上使用。

有任何想法吗?所有200万个github帖子都没有为我解决问题。

谢谢!

更新资料

volumes:从docker-compose中删除使其工作如此处所述,但我没有即时映射。对我来说这很重要

沃尔夫

最近我遇到了同样的问题,使用任何高级编辑器并在sh入口点脚本上将行尾更改为unix样式后,问题都消失了。

就我而言,不知道为什么,因为git在Linux或Windows主机上处理得很好,所以我遇到了同样的情况。如果您将文件安装在容器和主机中(在Windows中),则取决于您如何编辑它们,这些文件可能会从容器内部更改为linux,但这会影响外部Windows主机。之后,git声明文件.sh更改了,但是没有添加也没有删除。图形比较工具显示仅更改了新行。

解决问题的另一种解决方法是,例如可以通过sh启动容器覆盖的入口点脚本,然后从那里检查启动的容器中linux如何看到入口点脚本,即使您可以对其进行测试并看到完全相同的错误

对不起,我的英语不是我的母语。希望这对某人有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Docker容器:/ bin / sh:cat:无此类文件或目录

Docker卷安装:“无此类文件或目录”

退出代码为2的Docker容器退出:“ sh无法打开'start_script.sh':无此类文件或目录”

Docker Compose无法打开文件构建:无此类文件或目录

“无此类文件或目录”以及docker临时映像

Docker:Nginx和PHP容器:无此类文件或目录

docker-compose错误:Windows上的“无此类文件或目录”

Docker运行Python错误-[错误2]无此类文件或目录

Nginx,Certbot和Docker撰写:/etc/nginx/user.conf.d / *。conf:没有此类文件或目录

docker上的postgres失败,显示为“ chown:无法取消引用...:无此类文件或目录”

Postgres,Go Docker编写wait-for-it.sh没有此类文件或目录

/ bin / sh:设置docker-compose入口点时没有此类文件或目录

Docker不添加此类文件或目录

在Docker容器中安装Web应用程序:拨打unix /var/run/docker.sock:无此类文件或目录

COPY失败:stat /var/lib/docker/tmp/docker-builder<num>/server/requirements.txt:无此类文件或目录

Hadoop“ put”命令:无此类文件或目录

Docker 撰写文件无效

lstate错误:使用Docker build命令从自定义映像构建Docker时,没有此类文件或目录

docker容器中的dompdf:file_put_contents(x / x)无法打开流:无此类文件或目录

Jenkins(在Docker容器中)-由于... npm WARN tar ENOENT:无此类文件或目录,futime,导致npm安装失败

Docker容器打印“没有此类文件或目录”

Docker 撰写文件中的“-”字符

入口点:“ entrypoint.sh”-docker撰写

Docker在共享目录中撰写安装要求

docker为命令撰写环境变量

Docker撰写命令因冲突而失败

添加失败:构建docker映像时无此文件/目录

Docker内部的Docker(无命令行)

严重错误:* .h:没有此类文件或目录。在运行docker build命令为python项目创建图像时