Script Bash para o contêiner Docker no Windows retorna “Destino desconhecido”

0

Eu fiz o download de um repositório que contém um script .sh para abrir um contêiner do Docker. Estou executando o Windows 10 com Docker Toolbox (ao invés 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

Este é o roteiro completo, redigido de maneira leve para 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
    
por Josh Friedlander 13.08.2018 / 10:07

1 resposta

0

Em um caso clássico de depuração de rubber-duck , escrever isso me ajudou a ver a resposta: o argumento de destino Desconhecido está bem ali no roteiro, indicando que eu não tinha dado uma discussão. 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 retornará Unknown target .

    
por 13.08.2018 / 10:07