Docker COPY не копирует скрипт - PullRequest
       4

Docker COPY не копирует скрипт

0 голосов
/ 29 октября 2019

Docker COPY не копирует поверх bash-скрипта

FROM alpine:latest

#Install Go and Tini - These remain.
RUN apk add --no-cache go build-base gcc go

RUN apk add --no-cache --update ca-certificates redis git && update-ca-certificates

# Set Env Variables for Go and add Go to Path.
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

RUN go get github.com/rakyll/hey

RUN echo GOLANG VERSION `go version`
COPY ./bench.sh /root/bench.sh
RUN chmod +x /root/bench.sh
ENTRYPOINT /root/bench.sh

Вот скрипт -

#!/bin/bash
set -e;

echo "entered";

hey;

Я пытаюсь запустить вышеупомянутый Dockerfile с

$ docker build -t test-bench .
$ docker run -it test-bench

Но я получаю ошибку

/bin/sh: /root/bench.sh: not found

Файл существует существует -

$ docker run --rm -it test-bench sh
/ # ls
bin    dev    etc    go     home   lib    media  mnt    opt    proc   root   run    sbin   srv    sys    tmp    usr    var
/ # cd root
~ # ls
bench.sh
~ #

1 Ответ

0 голосов
/ 29 октября 2019

Ваш docker build успешен. Когда я попытался смоделировать это, обнаружил следующую ошибку

 ---> Running in 96468658cebd
go: missing Git command. See https://golang.org/s/gogetcmd
package github.com/rakyll/hey: exec: "git": executable file not found in $PATH
The command '/bin/sh -c go get github.com/rakyll/hey' returned a non-zero code: 1

Попробуйте установить git с помощью Dockerfile RUN apk add --no-cache go build-base gcc go git и запустите снова.

Операция COPY здесь кажется правильной,Убедитесь, что он присутствует в каталоге, из которого выполняется docker build.


Хорошо, скрипт использует /bin/bash двоичный файл bash недоступен на альпийском изображении. Либо он должен быть установлен, либо должен использоваться /bin/sh shell

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