Мой собственный бит не может найти custombeat.yml, когда я пытаюсь запустить его из контейнера - PullRequest
0 голосов
/ 04 августа 2020

Итак, я создал бит с магом GenerateCustomBeat, и он работает нормально, за исключением того, что сейчас я пытаюсь его совместить. Когда я запускаю созданный мной образ, он жалуется, что не найден customBeat.yml. Я убедился, что файл существует в папке, добавив строку RUN ls . в конец моего Dockerfile.

Имя доли - coletorbeat, поэтому это имя появляется в Dockerfile несколько раз.

После выполнения sudo docker run coletorbeat у меня появляется следующее сообщение об ошибке: Exiting: error loading config file: stat coletorbeat.yml: no such file or directory Если бы был способ указать расположение файла coletorbeat.yml при выполнении удара, в CMD я бы решил его, но у меня есть пока не нашел, как это сделать.

Я выложу Dockerfile ниже. Я знаю, что код в папке с битером работает нормально. Полагаю, я ошибаюсь в контейнеризации.

Dockerfile:

FROM ubuntu
MAINTAINER myNameHere

ARG ${ip:-"333.333.333.333"}
ARG ${porta:-"4343"}
ARG ${dataInicio:-"2020-01-07"}
ARG ${dataFim:-"2020-01-07"}
ARG ${tipoEquipamento:-"type"}
ARG ${versao:-"2"}
ARG ${nivel:-"0"}
ARG ${instituicao:-"RJ"}

ADD . .
RUN mkdir /etc/coletorbeat
COPY /coletorbeat/coletorbeat.yml /etc/coletorbeat/coletorbeat.yml

RUN apt-get update && \
    apt-get install -y wget git
RUN wget https://storage.googleapis.com/golang/go1.14.4.linux-amd64.tar.gz
RUN tar -zxvf go1.14.*.linux-amd64.tar.gz -C /usr/local
RUN mkdir /go

ENV GOROOT /usr/local/go
ENV GOPATH $HOME/go
ENV PATH $PATH:$GOROOT/bin:$GOPATH/bin

RUN echo $PATH
RUN go get -u -d github.com/magefile/mage
RUN cd $GOPATH/src/github.com/magefile/mage && \
    go run bootstrap.go
RUN apt-get install -y python3-venv
RUN apt-get install -y build-essential
RUN cd /coletorbeat && chmod go-w coletorbeat.yml && ./coletorbeat setup
RUN cd /coletorbeat && ./coletorbeat test config -c /coletorbeat/coletorbeat.yml && ls .

CMD ./coletorbeat/coletorbeat -E 'coletorbeat.ip=${ip}'

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

В строке CMD в Dockerfile я добавил команду cd / mybeatfolder, и она сработала. Libbeat по умолчанию ищет в текущей папке файл конфигурации, поэтому переход в правый каталог перед выполнением моего удара решил эту проблему.

0 голосов
/ 04 августа 2020

Вы добавляете файл yml в каталог / et c dir

COPY /coletorbeat/coletorbeat.yml /etc/coletorbeat/coletorbeat.yml

Но затем выполняете команды на /coletorbeat без использования et c.

...