Docker «не удалось настроить, отсутствуют учетные данные токена» - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь собрать контейнер 'rss2twitter' с указанным флагом c, необходимым для его работы. Поскольку запуск:

docker run rss **--feed=rssfeed.xml**

не работает, потому что он пытается выполнить команду, которую я добавляю к нему, я попытался добавить команду в переменную CMD в файле Docker следующим образом : CMD ["/srv/rss2twitter -f=rssfeed.xml"].

Запуск Docker run дает мне следующий вывод, основанный на добавлении выше:

execute "/srv/rss2twitter -f=rssfeed.xml"
rss2twitter - master-17ddbb0-20200212T02:46:34
2020/02/19 03:58:06 PANIC failed to setup, token credentials missing
2020/02/19 03:58:06 PANIC failed to setup, token credentials missing

Когда я запускаю файл Docker без добавления -f=rssfeed.xml, он дает мне следующий вывод:

execute "/srv/rss2twitter"
rss2twitter - master-17ddbb0-20200212T02:46:34
the required flag `-f, --feed' was not specified

Есть идеи, как я могу это исправить? Можно ли указать не docker аргументы при запуске Docker run, чтобы передать его образу?

Любая помощь приветствуется.

Dockerfile:

FROM umputun/baseimage:buildgo-latest as build

WORKDIR /build/rss2twitter
ADD . /build/rss2twitter

# run tests
RUN cd app && go test -mod=vendor ./...

RUN \
    version=$(/script/git-rev.sh) && \
    echo "version=$version" && \
    go build -mod=vendor -o rss2twitter -ldflags "-X main.revision=${version} -s -w" ./app

FROM umputun/baseimage:app-latest

COPY --from=build /build/rss2twitter/rss2twitter /srv/rss2twitter
RUN \
    chown -R app:app /srv && \
    chmod +x /srv/rss2twitter

WORKDIR /srv

CMD ["/srv/rss2twitter"]
ENTRYPOINT ["/init.sh"]

1 Ответ

0 голосов
/ 21 февраля 2020

Решение на самом деле очень просто. Используйте несколько служб в файле docker -compose.yml.

Примерно так:

version: '2'
services:
  rss2twitter_nummer_1:
    build: .
    image: umputun/rss2twitter:latest
    container_name: rss2twitter_nummer_1
    hostname: rss2twitter
    restart: always
    logging: &default_logging
      driver: json-file
      options:
        max-size: "10m"
        max-file: "5"
    environment:
      - FEED=feed
      - TWI_CONSUMER_KEY=
      - TWI_CONSUMER_SECRET=
      - TWI_ACCESS_TOKEN=
      - TWI_ACCESS_SECRET=
      - "TEMPLATE={{.Title}} - {{.Link}} #mytag"
    # command: ["/srv/rss2twitter", "--dry"]
  rss2twitter_nummer_2:
    build: .
    image: umputun/rss2twitter:latest
    container_name: rss2twitter_nummer_2
    hostname: rss2twitter
    restart: always
    environment:
      - FEED=
      - REFRESH=1m
      - TWI_CONSUMER_KEY=
      - TWI_CONSUMER_SECRET=
      - TWI_ACCESS_TOKEN=
      - TWI_ACCESS_SECRET=
      - "TEMPLATE={{.Title}} - {{.Link}} #mytag"
    # command: ["/srv/rss2twitter", "--dry"]

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

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