LoginSignup
37
22

More than 3 years have passed since last update.

docekrで/bin/sh: apt-get: not foundが出るのでbuildできない

Last updated at Posted at 2019-08-13

/bin/sh: apt-get: not foundが出る

下記の記事を参考にdockerfileにapt-getを使ったnpmのインストールを試みると
https://tsyama.hatenablog.com/entry/docker-not-found-npm

// このエラーが出た
/bin/sh: apt-get: not found

結論 - Alpine LinuxにUbuntuのパッケージマネージャーは使えない

この記事にAlpine Linuxのイメージには、
Ubuntuのパッケージマネージャーであるapt-getは使えませんよ。と書いてあった。
https://stackoverflow.com/questions/45142855/bin-sh-apt-get-not-found

補足資料
Alpine Linux で Docker イメージを劇的に小さくする

解決 - apk add --update nodejs nodejs-npm

apt-get -> apk add
解決法は上記の様にapt-getをapk addに置き換える事で解決します。

僕の場合はnodeを導入してnpmを使いたかったのでapk add --update nodejs nodejs-npmを実行するとうまくインストールできました!

dockerfileにこれを追加してください!

RUN apk add --update nodejs nodejs-npm

1つのRUNで実行したい場合は&& \で繋げられます!
こちらの方が推奨されている書き方らしいですね!

RUN xxxx yyyy aaa && \
    aaa bbbb aa && \
    ccc hhhh iio && \
    apk add --update nodejs nodejs-npm

参考記事↓
https://superuser.com/questions/1125969/how-to-install-npm-in-alpine-linux

確認

一応確認の方法ですが、

$ docker-compose up -d --build

でdoneと言ってくれたら下記のようにコンテナの中に入って

// 例
$ docker-compose exec {services} ash

// 僕の場合はphpやlaravelが入ってくるコンテナがappなので
$ docker-compose exec app ash

こんな感じに確認してください!

/WORK # node -v
> v10.16.0 
37
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
22