Дженкинс, выполняющий докер, не может найти скрипт точки входа - PullRequest
0 голосов
/ 02 июля 2018

Итак .. Запуск docker-compose run test внутри исполнителя Jenkins, работает. Запустить его из пользовательского интерфейса Jenkins (выполнить компоновку сейчас или реальное изменение кода, которое вызывает другую сборку) не удается.

16:37:18 Cannot start service test: OCI runtime create failed: 
container_linux.go:348: starting container process caused "exec:   
\"./script/docker-entrypoint.sh\": stat ./script/docker-entrypoint.sh: 
no such file or directory": unknown

Я уже пытался переместить сценарий за пределы папки script/ в корневой каталог, пытался добавить сценарий вручную после ADD . /app с помощью ADD script/entrypoint.sh /app/script/entrypoint.sh, а также пытался перезапустить демоны докера, машину Jenkins и прочее.

Я не могу заставить свой образ работать с Дженкинсом. Он запускается локально с docker-compose run test, он работает с терминала в исполнителе Jenkins, используя ту же команду, но не с обычного конвейера.

Вот мой Dockerfile

FROM ruby:2.2.2

RUN mkdir -p /app

# install Ruby dependencies
ADD Gemfile /app
ADD Gemfile.lock /app
RUN cd /app && \
  bundle config github.com ${GITHUB_USERNAME}:${GITHUB_TOKEN} && \
  BUNDLE_GEMFILE=Gemfile bundle install

ADD . /app

# rails server, elasticsearch, and webpack ports
EXPOSE 3000

WORKDIR /app

ENTRYPOINT [ "./script/docker-entrypoint.sh" ]

CMD [ "script/server" ]

А вот мой сценарий входа:

#!/bin/sh
set -ex

if [ -f tmp/pids/server.pid ]; then
  rm tmp/pids/server.pid
fi

exec "$@"

И последнее, но не менее важное, мой test сервис в compose, который я пытаюсь собрать / запустить:

test:
    build:
      context: .
      args:
        GITHUB_USERNAME: ${GITHUB_USERNAME}
        GITHUB_TOKEN: ${GITHUB_TOKEN}
    tty: true
    stdin_open: true
    command: ./script/test -n 4
    environment:
      RAILS_ENV: test
    volumes:
      - .:/app

Буду признателен за понимание, потому что не знаю, как правильно настроить мой образ в Jenkins.

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