Script de bash para o contêiner do Docker no Windows retorna "Destino desconhecido"

0

Eu baixei um repositório que contém um script .sh para abrir um contêiner Docker. Estou executando o Windows 10 com Docker Toolbox (em vez da versão completa, que tem alguns problemas do Hyper-V) e seu shell associado, e eu tentei executar o script tanto nisso quanto no git-bash (que é baseado em MinGW / mintty), e em ambos os casos eu recebo

$ ./build-image.sh
Unknown target

Aqui está o roteiro completo, redigido de leve para a privacidade:

case $1 in
    keras_base)
        docker build -f docker/keras_base docker -t foo:keras_base
        ;;
    keras_branch)
        git archive HEAD > bar.tar
        cp bar.tar docker/keras_branch
        branch=$(git rev-parse --abbrev-ref HEAD)
        docker build docker/keras_branch -t "foo:keras_${branch}"
        docker tag "foo:keras_${branch}" "XXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/foo:keras_${branch}"
        ;;
    *)
        echo Unknown target "$1"; exit 1
        ;;
    esac
Josh Friedlander
fonte

Respostas:

0

Em um caso clássico de depuração de borracha-pato , escrevendo isso, ajudou-me a ver a resposta: o argumento de destino Desconhecido está bem ali no script, indicando que eu não tinha dado um argumento. Especificamente, em scripts bash, os argumentos são indexados com zero prefixados por cifrões, então $ 0 é o nome do script e $ 1, $ 2, etc. são argumentos adicionais. A primeira linha case $1 in verifica se $ 1 - o argumento após o nome do arquivo - é um dos "keras_base" ou "keras_branch". Se não for, ou não for fornecido, ele retorna Unknown target.

Josh Friedlander
fonte