momocus / sakazuki

自宅の酒を管理するアプリケーション
https://sakazuki.fly.dev/
MIT License
13 stars 4 forks source link

docker compose buildが yarn: command not found で失敗する #753

Open yonta opened 1 month ago

yonta commented 1 month ago

💡 Summary

ぷえ~ いつの間に壊れていたのだ。

📝 再現方法

  1. $ docker compose build

🥰 理想

ビルド成功

🤬 現実

...(略)
 => [css  7/11] COPY package.json yarn.lock .yarnrc.yml ./                           0.0s
 => [web  8/11] COPY .yarn/releases/ ./.yarn/releases/                               0.0s
 => ERROR [web  9/11] RUN yarn install && yarn cache clean                           0.3s
------
 > [web  9/11] RUN yarn install && yarn cache clean:
0.289 /bin/bash: line 1: yarn: command not found
------
failed to solve: process "/bin/bash -o pipefail -c yarn install && yarn cache clean" did not complete successfully: exit code: 127

🌏 環境

WSL2 Ubuntu 20.04

yonta commented 1 month ago

途中のコンテナに入って実行してみた。 libpqのバージョン指定が失敗しているようだ。

root@091e6cfd958b:/sakazuki#   DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \
    nodejs=18.* postgresql-client-13=13.* libpq-dev=15.* yarn=1.22.* \
    imagemagick=8:6.9.*
Reading package lists...
Building dependency tree...
Reading state information...
E: Version '15.*' for 'libpq-dev' was not found
yonta commented 1 month ago

memo

docker build --progress=plainでビルド途中のメッセージを垂れ流せるらしい

yonta commented 1 month ago

ついでにhere document使うためにdockerfileのsytanxを1.3.1-labにしてるけど、今なら1.4でもいいかも。 -labをつけるとlabチャンネルになりunstable相当だから、stableチャンネルを使ったほうがよさそうな気がする。

https://docs.docker.com/build/dockerfile/frontend/

yonta commented 1 month ago

あと気づいたのが、apt-get --qqman apt-getによると「実際に動作しないオプション(URIプリントやdry runなど)と一緒のときだけ使え!」って書いてある。 -qqをやめて、-qにしたほうがよさそう。

yonta commented 1 month ago

fly.Dockerfile見てたらYARNのバージョン指定が間違っている…