Как выполнить бинарный файл, используя сценарий оболочки внутри Docker контейнера? - PullRequest
0 голосов
/ 24 апреля 2020

Я запускаю приложение Django внутри контейнера Docker. Я вызываю сценарий оболочки для выполнения некоторых задач (я вызываю этот сценарий оболочки, используя функцию python, а не команду docker). Он работает нормально, когда я запускаю его без контейнера. И файл оболочки, и двоичные файлы находятся в одном каталоге.

Ниже приведен сценарий продажи

#!/bin/bash

GENOME_DIRECTORY=$1
OUTPUT_DIRECTORY=$2

dir=/usr/src/app/dsk/bin/
for file in "$dir/"*
do
  [[ -d "$file" ]] && echo "$file is a directory"
  [[ -f "$file" ]] && echo "$file is a regular file"
done

for file in ${GENOME_DIRECTORY}/*.fna; do
     fileName="$(basename -- $file)"
     specieName="${fileName%.*}"
     outputH5Name=${specieName}"_output"
     outputKmerSpecieName=${specieName}"_kmer_output"       
     echo ${fileName} " Kmer Counting Started "             

     # Change max-memory and kmer-size parameters accordingly   
     ./dsk -nb-cores 1 -max-memory 300 -file ${GENOME_DIRECTORY}/${fileName} -kmer-size 11 -out ${OUTPUT_DIRECTORY}/${outputH5Name}
     ./dsk2ascii -file ${OUTPUT_DIRECTORY}/${outputH5Name} -out ${OUTPUT_DIRECTORY}/${outputKmerSpecieName}         
     echo ${fileName} " Kmer counting finished "
done
for file1 in ${OUTPUT_DIRECTORY}*.h5; do   
     echo ${file1} " Deleted "
     rm -f ${file1} 
done

exit 1

Out put

   b'/usr/src/app/dsk/bin//__pycache__ is a directory\n/usr/src/app/dsk/bin//dsk is a regular file\n/usr/src/app/dsk/bin//dsk2ascii is a regular file\n/usr/src/app/dsk/bin//h5cc is a regular file\n/usr/src/app/dsk/bin//kmer.sh is a regular file\n/usr/src/app/dsk/bin//kp.py is a regular file\ncoriobacterium.fna  Kmer Counting Started \ndsk/bin/kmer.sh: 
line 22: ./dsk: No such file or directory\ndsk/bin/kmer.sh: 
line 23: ./dsk2ascii: No such file or directory\ncoriobacterium.fna  Kmer counting finished \n/usr/src/app/storage/59/DSK_RESULTS/*.h5  Deleted \n'

Ошибка:

line 22: ./dsk: No such file or directory
line 23: ./dsk2ascii: No such file or directory

Рабочий каталог - / usr / src / app /

Я также попытался изменить эти строки на

./usr/src/app/dsk/bin/dsk

./dsk/bin/dsk

Каждый раз, когда появляется тот же тип ошибки, что и результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...