Запуск образа докера с отдельной локальной gemspec - PullRequest
0 голосов
/ 25 сентября 2018

В настоящее время у нас есть 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 ничего не сломали?

1 Ответ

0 голосов
/ 06 июня 2019

Я имел дело с очень похожей проблемой, и думаю, что это работает для меня:

Gemfile

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

gem_path = ENV.fetch('LOCAL_GEM_PATH', '.')

gem 'my_personal_gem', path: File.join(gem_path, 'my_personal_gem')

Тогда вы можете установить LOCAL_GEM_PATH туда, где находится каталог с драгоценными камнями.

Надеюсь, это поможет.

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