В настоящее время у нас есть Dockerfile для создания нашего тестового образа.
FROM ruby:2.4
USER root
ENV LOCAL_GEM_PATH ./../qa-common/
RUN /bin/bash -l -c "gem install nokogiri -v 1.8 --no-ri --no-rdoc"
COPY Gemfile* /tmp/
COPY qa-common $LOCAL_GEM_PATH
WORKDIR /tmp
#================================================================
# Installs gems . Put frequently changed commands (COPY, ADD)
# after this as section as much possible to insure a quick build
#================================================================
RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
RUN /bin/bash -l -c "bundle install"
COPY . /usr/src/app
WORKDIR /usr/src/app
CMD ["-T"]
ENTRYPOINT ["bundle", "exec", "ruby", "bin/run_tests_from_queue.rb"]
Мы сталкиваемся с ошибкой, когда установка пакета в Dockerfile не может найти гем qa-common (который является локальным репозиторием на моей машине с .gempspec)
Обычнобез докера в файле gem текущего проекта указывается, что изменения, которые мы вносим в qa-common, можно протестировать на нашей локальной машине
gem 'qa-common', :path => local_gem_directory
Все, что мы пробовали, - это предотвращение установки этого пакета, поскольку он либо не может найти гем /gemspec или потому что qa-common находится за пределами каталога test (где находится Dockerfile).
Каков наилучший метод или решение этой проблемы, чтобы при создании образа для запуска тестов, зависящих от этого qa-Common Gem, мы можем использовать локальную версию qa-common на нашей машине, чтобы проверить, что изменения в qa-common ничего не сломали?