Dockerfile: как скачать файл с помощью curl и скопировать в контейнер - PullRequest
0 голосов
/ 22 апреля 2020

в этом примере я копирую wait-for-it. sh внутри /app/wait-for-it.sh Но я не хочу сохранять wait-for-it. sh in мой локальный каталог. Я хочу скачать его с помощью curl, а затем скопировать в /app/wait-for-it.sh

FROM prismagraphql/prisma:1.34.8
COPY ./wait-for-it.sh /app/wait-for-it.sh
RUN chmod +x /app/wait-for-it.sh
ENTRYPOINT ["/bin/sh","-c","/app/wait-for-it.sh mysql:3306 --timeout=0 -- /app/start.sh"]

Я попробовал вот что, но как я могу получить wait-for-it.sh после загрузки? файл с помощью команды curl:

FROM prismagraphql/prisma:1.34.8

FROM node:11-slim

RUN apt-get update && apt-get install -yq build-essential dumb-init

RUN curl -LJO https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh

COPY wait-for-it.sh /app/wait-for-it.sh

RUN chmod +x /wait-for-it.sh

ENTRYPOINT ["/bin/sh","-c","/wait-for-it.sh mysql:3306 --timeout=0 -- /app/start.sh"]

1 Ответ

1 голос
/ 22 апреля 2020

Исходя из ваших комментариев ниже, вы можете попробовать это:

FROM prismagraphql/prisma:1.34.8

RUN apk update && apk add build-base dumb-init curl

RUN curl -LJO https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh

RUN cp wait-for-it.sh /app/

RUN chmod +x /wait-for-it.sh

ENTRYPOINT ["/bin/sh","-c","/wait-for-it.sh mysql:3306 --timeout=0 -- /app/start.sh"]

Примечание: вам нужно использовать команду cp, так как вы хотите скопировать скрипт из одного места в другое в пределах файловая система вашего контейнера.

Вы также можете подтвердить наличие вашего скрипта и других файлов / каталогов в папке /app, выполнив команду:

$ docker run --rm --entrypoint ls waitforit -l /app/
total 36
drwxr-xr-x    1 root     root          4096 Aug 29  2019 bin
drwxr-xr-x    2 root     root         16384 Aug 29  2019 lib
-rwxr-xr-x    1 root     root           462 Aug 29  2019 prerun_hook.sh
-rwxr-xr-x    1 root     root            61 Aug 29  2019 start.sh
-rw-r--r--    1 root     root          5224 Apr 22 13:46 wait-for-it.sh
...