无法在dockerized rails app中安装geit中的gem

时间:2017-05-05 17:14:09

标签: ruby-on-rails docker

请帮我构建我的第一个docker镜像。 我的Gemfile包含:

gem 'webpacker', github: 'rails/webpacker'

以下是Dockerfile

FROM ruby:2.4-alpine

...
ADD Gemfile $INSTALL_PATH/Gemfile
ADD Gemfile.lock $INSTALL_PATH/Gemfile.lock
RUN bundle install
ADD . $INSTALL_PATH
...

Docker和docker-compose:

Docker version 17.03.1-ce, build c6d412e
docker-compose version 1.13.0, build 1719ceb

当我跑步时

docker build .

我收到错误:

Fetching https://github.com/rails/webpacker.git
sh: git: not found

Git error: command `git clone 'https://github.com/rails/webpacker.git'
"/usr/local/bundle/cache/bundler/git/webpacker-
61415c05b31197242a5fde705ba334f36321be12"
--bare --no-hardlinks --quiet` in directory /test_task has failed.

我猜,原因与github源有关,因为如果我从Gemfile中删除所有使用github源的gems,那么将从rubygems存储库中正确获取gems

更新:当我使用ruby:2.4-slim而不是alpine linux作为基本映像时,构建完成且没有错误

1 个答案:

答案 0 :(得分:7)

看来你在容器里面没有git。要在Alpine映像上安装它,您应该添加到Dockerfile:

FROM ruby:2.4-alpine
RUN apk update && apk add git
... the rest of your Dockerfile ...

希望它有所帮助。