Итак .. Запуск 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.