docker сборка ARG всегда пустая строка - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть один докер-файл здесь.

FROM golang:1.13-alpine as build
ARG DIR=somevalue
RUN echo $DIR

вывод равен

Sending build context to Docker daemon  57.37MB
Step 1/3 : FROM golang:1.13-alpine as build
 ---> 2e384b27f926
Step 2/3 : ARG DIR=somevalue
 ---> Running in 3cd3457a795f
Removing intermediate container 3cd3457a795f
 ---> ecfa2f50c4fa
Step 3/3 : RUN echo $DIR
 ---> Running in aab4e31e0e14

Removing intermediate container aab4e31e0e14
 ---> 5351cb77c245
Successfully built 5351cb77c245

DIR всегда пуст, когда я пытаюсь использовать DIR для другого примера имени DIR1, он тоже пуст. docker версия здесь

 Client:
 Version:           18.09.8
 API version:       1.39
 Go version:        go1.11
 Git commit:        2c0a67b
 Built:             Fri Sep  6 02:50:44 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.09.6
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.11
  Git commit:       1d8275b
  Built:            Fri Sep  6 02:51:05 2019
  OS/Arch:          linux/amd64
  Experimental:     false

Однако, когда я пытаюсь на другую машину. это правильно, это будет отражать какое-то значение. Кто может дать мне несколько советов, чтобы найти проблом о неправильной машине? спасибо.

1 Ответ

0 голосов
/ 04 апреля 2020

Можете ли вы попробовать запустить, передав опцию --no-cache, она работает, как и ожидалось для меня

❯❯❯ docker build . --no-cache
Sending build context to Docker daemon  194.7MB
Step 1/3 : FROM golang:1.13-alpine as build
 ---> 2e384b27f926
Step 2/3 : ARG DIR=somevalue
 ---> Running in c53bbb64dda1
Removing intermediate container c53bbb64dda1
 ---> b76b21aca433
Step 3/3 : RUN echo $DIR
 ---> Running in 6c49d289e258
somevalue
Removing intermediate container 6c49d289e258
 ---> d51e5579f1cb
Successfully built d51e5579f1cb

Однако, если он построил одно и то же изображение один раз, он не выведет ничего, как он слой кешируется:

❯❯❯ docker build .
Sending build context to Docker daemon  194.7MB
Step 1/3 : FROM golang:1.13-alpine as build
 ---> 2e384b27f926
Step 2/3 : ARG DIR=somevalue
 ---> Using cache
 ---> b76b21aca433
Step 3/3 : RUN echo $DIR
 ---> Using cache
 ---> d51e5579f1cb
Successfully built d51e5579f1cb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...