Я пытаюсь настроить gitlab ci с помощью метода, зарегистрированного here, и тестирования приложения 4 рельсов с ним.Использование gitlab ci с docker compose оставляет меня с контейнерами, сгенерированными папками gitlab не может удалить
Проблема у меня в том, что тест будет выполняться один раз и создать образ и контейнеры, но когда я пытаюсь запустить тест снова проваливается с:
gitlab-ci-multi-runner 1.1.3 (a470667)
Using Shell executor...
Running on ubuntu-lon1-01...
Fetching changes...
warning: failed to remove tmp/miniprofiler
ERROR: Build failed: exit status 1
Я думаю, что это происходит потому, что папка tmp создается при первом запуске приложения и принадлежит корню в контейнере.
Это gitlab.ci.yml
настоящее время я использую, но я пробовал много разных версии все с тем же результатом:
before_script:
- docker info
build_image:
stage: test
script:
- docker-compose build
- docker-compose run web rake db:create RAILS_ENV=test
- docker-compose run web bin/rake db:migrate RAILS_ENV=test
- docker-compose up -d
- docker-compose run web bundle exec rspec
- docker-compose stop
, я думал, что я может быть в состоянии удалить папку используя after_script
, но это не работает с установкой оболочки.
Я не уверен, как с этим справиться. Я думаю, мне нужно либо удалить его при выходе, либо изменить разрешения, чтобы его можно было удалить.
Это мой Dockerfile:
FROM ruby:2.3.1
RUN apt-get update -qq && apt-get install -y build-essential \
&& apt-get install -y apt-utils \
&& apt-get install -y libqt4-webkit libqt4-dev xvfb \
&& apt-get install -y wget \
&& apt-get install -y libpq-dev \
&& apt-get install -y postgresql-contrib \
&& apt-get install -y libxml2-dev libxslt1-dev \
&& apt-get install -y imagemagick libmagickcore-dev libmagickwand-dev \
&& apt-get install -y nodejs
RUN gem install foreman
WORKDIR /tmp
COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock
RUN bundle install
RUN mkdir /app
WORKDIR /app
COPY . /app/
И мой докер-Compose:
db:
image: postgres:9.4
ports:
- "5432"
web:
build: .
command: foreman start -f Procfile.dev
volumes:
- .:/app
stdin_open: true
ports:
- "3000:3000"
links:
- db
погуглить я не могу найти кого-нибудь, что это имеющий тот же вопрос, поэтому я предполагаю, что я» я делаю что-то неправильно.
Спасибо.
Пытались ли вы то же самое настроить с помощью докера в докере? Так как это предлагает либо оболочку, либо докер в докере. Не исправит вашу текущую проблему, но у меня было это раньше. –