Я использую dockerfile для создания кода go, и я пытаюсь передать 3 опции в опции -ldflags .Два из этих флагов взяты из ENV переменных, и я должен вставить их в -ldflags содержимое, через интерполяцию строк или конкатенацию, но я не знаю, как.
Цель состоит в том, чтобы внедрить хэш редакции git и текущую метку времени в две переменные в main.go
Это можно сделать, создав файл из dockerfile с помощью команды "echo", но яхочу убедиться, что это невозможно с простой интерполяцией / объединением переменных
ENV GIT_REVISION $( git rev-parse --short HEAD )
ENV COMPILATION_TIMESTAMP $( date +%Y%m%dT%H:%M:%S )
RUN go get -d -v
// This one works:
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-extldflags "-static"' -o myprogram .
// This one, with those variables, fails:
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags "-extldflags '-static' -X main.compiledOn=${COMPILATION_TIMESTAMP} -X main.gitRevisionHash=${GIT_REVISION}" -o myprogram .