Dockerfile ОШИБКА: standard_init_linux.go: 207: пользовательский процесс exec вызвал "нет такого файла или каталога - PullRequest
0 голосов
/ 02 октября 2019

У меня появляется эта ошибка при попытке создать службу ERROR: standard_init_linux.go:207: exec user process caused "no such file or directory".. Этого не происходит, когда я использую ubuntu: latest в качестве базового образа.

Поэтому я пытаюсь запустить службу с:

docker service create --name mon --publish 9999:9999 --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock mon:1 

И служба не была успешно создана.

Вот мой докер-файл с golang: alpine:

FROM golang:alpine
COPY . /edg
RUN chmod a+x /edg/edgmn
EXPOSE 9999
CMD ["/edg/edgmn", "--rules.reactive", "--swarm.environment", "--alert.address=X:9091"]

Я много чего перепробовал, но ничего не работает.

Есть идеи? Спасибо

1 Ответ

2 голосов
/ 02 октября 2019

Ваш двоичный файл, вероятно, динамически связан с одной или несколькими библиотеками, которых нет в альпийском образе. Например, если ваш двоичный файл связан с glibc (типично, если вы скомпилировали его в Ubuntu), он не будет работать в alpine (который использует musl вместо glibc), но будет работать с ubuntu:latest.

См. Как создать статический бинарный файл Go для образа Docker Alpine?

Короче говоря, компиляция вашего бинарного файла с помощью CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build <args> перед копированием в альпийский контейнер приведет кчасто решают проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...