簡體   English   中英

docker-compose: 文件顯示為 ls 但在執行時找不到

[英]docker-compose: file shows up with ls but can't be found when executed

我想為我的 docker-compose 前端容器運行一個 shellscript。 當我嘗試運行該文件時,我收到一條錯誤消息,提示找不到 shell 文件:

services.app | /usr/local/bin/docker-entrypoint.sh: exec: line 8: /usr/src/app/frontend/entrypoint.sh: not found

這是我的 docker-compose 文件:

docker-compose 條目:

frontend:
    build: ./frontend
    image: app
    container_name: services.app
    volumes:
      - .:/usr/src/app
    ports:
      - "3000:3000"
    env_file: ./.env
    stdin_open: true
    command: /usr/src/app/frontend/entrypoint.sh prod

但是,當我在 docker-compose 文件中運行command: ls /usr/src/app/frontend/ ,我可以看到該文件:

services.app | entrypoint.sh

shell 文件真的丟失了還是我誤解了這個錯誤? 有關如何修復它的任何建議?

編輯:entrypoint.sh 腳本:

#!/bin/bash

cp -r /usr/src/cache/node_modules/. /usr/src/app/node_modules/

exec npm start

好吧,我可以模擬錯誤,盡管我不能說這就是您的情況:

$ mkdir /tmp/demo

$ ln -s /no/such/dir/entry.sh /tmp/demo/entry.sh # create soft link to non existent file

$ chmod +x /tmp/demo/entry.sh # and make it executable for good measure

$ ls /tmp/demo # so now we can list the file
entry.sh

$ /tmp/demo/entry.sh # but cannot execute it
-bash: /tmp/demo/entry.sh: No such file or directory

所以最后對我sh只是在命令前面附加sh

command: sh /usr/src/app/frontend/entrypoint.sh prod

暫無
暫無

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

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