gpt4 book ai didi

ruby - 如何在centos或ruby docker容器中运行ruby gem?

转载 作者:行者123 更新时间:2023-12-02 19:06:58 25 4
gpt4 key购买 nike

我正在尝试将徽章添加到我们构建的应用程序图标中。有一个名为badge的 ruby ,可以很好地完成工作(https://github.com/HazAT/badge)。

我尝试在用于构建应用程序的macOS vm上安装徽章。它破坏了其他事情,因为它具有很多依赖性。所以我试图在官方的ruby docker容器中运行徽章

docker run -ti ruby

我没有安装任何东西,因为没有预安装 wgetgem
irb(main):001:0> gem
Traceback (most recent call last):
3: from /usr/local/bin/irb:11:in `<main>'
2: from (irb):1
1: from /usr/local/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_gem.rb:44:in `gem'
ArgumentError (wrong number of arguments (given 0, expected 1+))
irb(main):002:0> wget
Traceback (most recent call last):
2: from /usr/local/bin/irb:11:in `<main>'
1: from (irb):2
NameError (undefined local variable or method `wget' for main:Object)
irb(main):003:0>

然后我尝试了centos图像
docker run -ti centos

我能够安装ruby和所需的库并运行gem
yum -y install ruby gcc ruby-devel rubygems libcurl libcurl-devel make

现在我在运行 gem install badge时遇到了这个错误:
ERROR:  Error installing badge:
ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for main() in -lstdc++... no
creating Makefile

make "DESTDIR="
g++ -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -mtune=generic -m64 -o unf.o -c unf.cc
make: g++: Command not found
make: *** [unf.o] Error 127

在docker容器中运行ruby gem的正确方法是什么?我应该使用ruby docker容器吗?如果没有,如何使它在另一个容器中运行?不必一定是centos。这只是我想到的第一张图片。

最佳答案

Docker是完成此任务的好工具。

Docker文件

FROM ruby:2.4.2-alpine3.6

RUN apk add --no-cache curl-dev \
&& apk add --no-cache --virtual .builddeps build-base \
&& gem install badge -v 0.8.7 \
&& apk del .builddeps

建立形象
$ docker build . --tag badge:0.8.7

运行 badge
$ docker run --rm badge:0.8.7 badge --help

关于ruby - 如何在centos或ruby docker容器中运行ruby gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48946559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com