

# 質問内容

わたしは現在Dockerで開発環境を構築したRuby on
Railsでアプリを開発しています。その中で(今回の場合は)imagemagickというライブラリをRailsのなかでインストールをして使用したいのですが、Dockerの開発環境でライブラリをインストールする方法がわからず困っています。結果的にimagemagickをインストールできるにはどうしたらいいでしょうか？

# 詳細

DockerのRailsの開発環境の構築は自分で調べてうまく実装できたのですが、その他のコマンド操作なども手探りで調べている状態でDockerの知見は浅い状態にあります...

# 調べた内容

試しに下記のURLに記述してあるインストールを試してみました。  
<https://qiita.com/salvage0707/items/2614c97a1f256027ef71>  
コマンドはこちらになります。

[code]

    $ sudo apt-get update
    Password: (わたしのパスワード)
    sudo: apt-get: command not found
    
[/code]

Dockerの環境だからでしょうか。コマンドが間違えているという表示が出ました。

いろいろ調べてDockerでRubyやPostgreSQLをインストールしたときにDockerfile内に記述した内容を思い出しました。  
そのためimagemagickのようなライブラリをインストールするときにもDockerfileを用いるのかと思い、その方向性で調べてみました。  
ただわたしの知識不足の影響か、「Dockerfile ライブラリ
インストール」と検索をしても複数の情報で溢れていて正しい情報を見つけることができませんでした...

現在のDockerfileは以下の状態になります。

[code]

    FROM ruby:2.5
    RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
    RUN mkdir /myapp
    WORKDIR /myapp
    COPY Gemfile /myapp/Gemfile
    COPY Gemfile.lock /myapp/Gemfile.lock
    RUN bundle install
    COPY . /myapp
    
    # Add a script to be executed every time the container starts.
    COPY entrypoint.sh /usr/bin/
    RUN chmod +x /usr/bin/entrypoint.sh
    ENTRYPOINT ["entrypoint.sh"]
    EXPOSE 3000
    
    # Start the main process.
    CMD ["rails", "server", "-b", "0.0.0.0"]
    
[/code]

2行目に似た記述がありますが開発環境構築のときに記述した内容で今回に試した内容とは異なります。

# まとめ

・Dockerに対して知見が浅い  
・Dockerのライブラリのインストール方法がわからない  
・Dockerfileの記述の意味が理解できていない

わたしなりに書籍などを通して今回の関連する内容を理解することに努めましたが、ピンポイントに今回の不明点を理解するに至らず、この壁を越えることが困難な状態にあります。ぜひご教授して頂けましたら幸いです。


CC BY-SA 4.0
2020-05-19T05:53:21.610
66766
2022-07-16T21:06:50.593
40221
question
docker
Dockerの環境でライブラリのインストールを行いたい


Dockerのruby 2.5はalpineというlinuxディストリビューションをベースとするイメージとなっています。

<https://github.com/docker-
library/ruby/blob/a564feaaee4c8647c299ab11d41498468bb9af7b/2.5/alpine3.10/Dockerfile>

そのため、パッケージのインストールコマンドはapt系ではなく、apkを利用する必要があります。

[code]

    apk update
    apk add --no-cache imagemagick bash pngcrush optipng=0.7.7-r0
    
[/code]

これをDockerfileに記述してビルドしてみてください。


CC BY-SA 4.0
2020-05-19T17:17:12.930
66788
2020-05-19T17:17:12.930
7997
66766
answer