172 похожих чатов

Ребят, подскажите, пожалуйста. Есть ли в Dockerfile возможность получить относительный

путь к докерфайлу? например, я собираю так:
docker build . -f docker/Dockerfile …
И мне приходится в Dockerfile писать:
COPY docker/src /app/src
Получается Dockerfile должен знать где он лежит относительно рабочей директории сборки, а это не очень удобно.

6 ответов

11 просмотров

Я, конечно, не уверен, что правильно отвечу, но WORKDIR разве не решает эту проблему? Один раз прописал и пользуешься

Aleksey-Chirkin Автор вопроса

Ты исходишь из 2 параметров build context - это точка в твоей команде, т.е. текущая папка является базовой и от неё строятся все relative пути working directory - это также базовая папка, но уже изнутри твоего билда COPY docker/src /app/src build context влияет на первый параметр - docker/src working directory на второй - /app/src, если бы путь не начинался с /

Aleksey-Chirkin Автор вопроса
Vova Lantsov 🇺🇦
Ты исходишь из 2 параметров build context - это то...

Благодарю, это я понимаю. Проблема в том, что если я перемещу код приложения и Dockerfile скажем в docker/some/, то мне придется менять путь внутри Dockerfile. Но когда я вызываю docker build . -f docker/some/Dockerfile … по-идее докер уже знает путь к Dockerfile относительно build context. Если его получить то можно писать COPY $PATH/src /app/src. Если $PATH будет содержкать docker/some путь

Aleksey Chirkin
Благодарю, это я понимаю. Проблема в том, что если...

Встроенной переменной для этого не знаю Могу предложить --build-arg

Aleksey Chirkin
Благодарю, это я понимаю. Проблема в том, что если...

> по идее докер уже знает путь к Dockerfile относительно build context Не знает. Контекстом может быть архив или вообще stdin. Dockerfile может быть абсолютным путем или даже URL, он вообще не обязан находится внутри контекста

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта