LINUX.ORG.RU
ФорумAdmin

docker build

 


0

1

Подскажите, могу ли я при сборке образа из Dockerfile указать из какого репозитория делать сборку? Спасибо!

Ответ на: комментарий от WitcherGeralt

FROM 127.0.0.1:8088/alpine

RUN apk add –no-cache nginx && mkdir -p /run/nginx

EXPOSE 80

CMD [«nginx», «-g», «daemon off;»]

пример моего докерфайла, alpine он находит, а дальше затыкается, мне нужно что бы полностью собирал вот отсюда 127.0.0.1:8088

Cyber_T
() автор топика
Ответ на: комментарий от Cyber_T

FROM registry.redhat.io/rhel8/go-toolset:latest — так работает.

А вот ip-адрес+порт я никогда не пробовал. Если так не работает то завести домен (локальный, либо даже просто в hosts) — дело пары минут, а вот с портом сам смотри как поступить, тоже не проблема.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Угу и гвоздями прибить в докер-файле, и при смене реестра весело эти 100500 файлов править потом. Луче уж docker pull откуда надо.

PRN
()
Ответ на: комментарий от Cyber_T

Этот вариант не отработал! Все равно лезет в реестр по умолчанию!

На практике я этот вариант не проверял, но ты точно демон докера перегружал?

Юзай docker pull это точно отработает.

PRN
()

Короткие указания на image - только с hub.docker.com. Это жестко забито.

Можно указывать полное имя registry.my.host:1234/my_image:v1 что бы он брался с твоего registry. И это будет именно registry.my.host:1234/my_image:v1 , а не my_image:v1

Можно проксировать докер-хаб. Устанавливаешь отдельных инстанс registry и настраиваешь его как docker proxy. (параметр в конфиге proxy: remoteurl: https://registry-1.docker.io ....)

Тогда все pull будут проходить через проксик и оседать там.

Грубо гвооря, что бы получить my_image:v1, тебе нужно заливать образ на докер-хаб. Если захочешь оптимизировать трафик - то ставишь прокси. Если хочешь просто кучу образов в локальном registry - называешь их registry.my.host:1234/my_image:v1

zendrz ★★
()
Последнее исправление: zendrz (всего исправлений: 2)
Ответ на: комментарий от WitcherGeralt

FROM registry.redhat.io/rhel8/go-toolset:latest Кстати, latest это тоже очень замечательно. При перегрузке сервиса, вместо версии X может прилететь версия X+1234 с новым API и ты весело чинишь пока все лежит. @Cyber_T, не далай по-ведьмачи, делай по-человечески))

PRN
()
Ответ на: комментарий от PRN

latest конечно не нужно, как и пустота вместо тэга (это эквивалентно latest). Признано плохой практикой и ошибкой дизайна.

zendrz ★★
()
Ответ на: комментарий от PRN

Чего ты несёшь? Я взял первый попавшийся образ с регистри шляпы. Делать мне больше нечего, ещё версию подбирать для комментария на лорчике, добавил latest и всё.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 2)
Ответ на: комментарий от PRN

Делай вид какой хочешь, товарищ астролог, а всем здесь известно, что я на питоне пишу (на работе).

WitcherGeralt ★★
()
Ответ на: комментарий от PRN

Не ругайтесь, я знаю что нужно конкретную версию указывать)

Cyber_T
() автор топика
Ответ на: комментарий от PRN

То есть я сначало делаю pull всего того что у меня имеется в докерфайле а затем build и он берет все это локально?

Cyber_T
() автор топика
Ответ на: комментарий от Cyber_T

Приблизительно должно быть так:

  • Логинишся, если для реестр это требует: docker login registry.redhat.io

  • Скачиваешь образ на базе которого будешь собирать: docker pull registry.redhat.io/rhel8/go-toolset:1.14

  • Если все завершилось без ошибок, что лежит локально можно так: docker image ls

REPOSITORY          TAG   ...
go-toolset          1.14  ...
  • Билдишь: docker build --tag my-go-toolset:1.14. В твоем докер-файле прописано просто FROM go-toolset:1.14

  • У тебя появится собственный образ my-go-toolset:1.14

Описанный пример с шапкой я не проверял, но думаю там не должно быть проблем.

UP: Само сабой, тебе это надо делать со своим реестром и базовым образом)

PRN
()
Последнее исправление: PRN (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.