Каждая команда RUN запускает новую оболочку с чистой средой и новым рабочим каталогом по умолчанию.В частности, RUN cd ...
как изолированный шаг ничего не делает.
Если вам действительно нужно изменить каталоги в Dockerfile, либо объедините два шага в один, либо используйте WORKDIR
директива, чтобы сделать изменение более глобальным.
В конкретном случае хранилища Go, поскольку есть стандартная структура каталогов , которая, по крайней мере, очень сильно поощряется, я бы поработал с ней:
FROM golang
WORKDIR /go/src/github.com/me/myprogram
COPY . ./
RUN go install .
CMD ["/go/bin/myprogram"]
(В общем, Go имеет дело с целыми каталогами или «пакетами» связанных файлов, а не обязательно с отдельными .go
файлами.)