请帮我构建我的第一个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作为基本映像时,构建完成且没有错误
答案 0 :(得分:7)
看来你在容器里面没有git。要在Alpine映像上安装它,您应该添加到Dockerfile:
FROM ruby:2.4-alpine
RUN apk update && apk add git
... the rest of your Dockerfile ...
希望它有所帮助。