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


/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