1
我想設置gitlab ci使用文檔here和測試一個rails 4應用程序與它。使用gitlab ci與碼頭工人合併留給我的容器生成文件夾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
但不支持shell設置。
我不知道該如何處理。我想我需要在退出時刪除它或更改權限,以便刪除它。
這是我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/
我的搬運工,撰寫:
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
谷歌搜索我似乎無法發現運作有同樣的問題,所以我假設我」任何人我做錯了什麼。
謝謝。
您是否嘗試過同樣的在docker中使用docker設置?因爲它暗示了Docker中的shell或docker。不會解決你目前的問題,但我曾經工作過。 –