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。不会解决你目前的问题,但我曾经工作过。 –