簡體   English   中英

Docker 編寫“錯誤:找不到文件”,但 ubuntu shell 可以找到該文件

[英]Docker Compose “ERROR: file not found”, but ubuntu shell can find the file

我正在嘗試獲取 Docker Compose 腳本來測試 python 程序。 下面是運行docker-compose命令的.sh。

#!/usr/bin/env bash

script_path=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
base_path=${script_path}/src

container_path=${base_path}/deploy/
docker_compose_path=${container_path}docker-compose.yml

sudo nano ${base_path}/tests/scrap/test_r.py

docker-compose -f "${docker_compose_path}" run service_name pytest -x ${base_path}/tests/scrap/test_r.py
docker-compose -f "${docker_compose_path}" down

運行時的問題是出現錯誤並顯示以下消息:

ERROR: file not found: /correct/path/to/test_r.py

注意:我檢查了很多次,路徑(絕對)是正確的。

該錯誤的奇怪之處在於 shell 可以毫無問題地找到它。 位於 docker-compose 頂部的 nano 命令完美運行,加載具有正確內容的文件。 盡管如此,使用相同的確切路徑,docker-compose 似乎無法找到它並執行它(已經嘗試 chmod +x test_r.py 但它不起作用。Docker Compose 根本找不到它)。

無論您需要什么額外的信息,您都可以詢問。 謝謝:P

注意:我不認為該項目在另一台運行 MacOS 的計算機上完美運行的事實是問題的根源。 我的電腦正在嘗試在 Ubuntu 環境中執行腳本。 如果考慮到這一點是朝着正確方向邁出的一步,我不知道如何解決這個問題。

編輯:添加文件 docker-compose.yml 的信息:

version: '3.5'

services:
  service_name:
    image: image_name
    build:
      context: ../
      dockerfile: Dockerfile
    tty: true
    volumes:
      - ../../../workers:/opt/workers/
    working_dir: /opt/workers/src
    env_file:
      - ../local/worker.env

原來我所要做的就是更新 docker-compose.yml 文件中的“working_dir”路徑,以使其找到相應的 py 文件。 問題是我不知道我必須注意這些信息。 感謝@David Maze 問了我所有的問題。 有時問對的人指向正確的方向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM