Napa Log

Blog

sshでコマンドを実行すると「command not found」言われて泣いちゃった

サムネイル

github actionに手を出してみたんです

サイトをNextJsで運用していますが、従来は何か修正をするたびに、サーバーに潜り込んで、ビルドしていました。

今までのお仕事でも「Jenkinsおじさん」がいて、画面のボタンポチポチするだけでビルドやらなんやらをやってくれてました。

なんだかかっこいいので、私のサイトでもそれを適用しようと思い、github actionに初めて手を出していたわけです。

github actionだと、コマンドが通らない

yarnっていうコマンドがあるんです。フロントエンドエンジニアの方なら親の顔よりも見たコマンドかもしれません。

依存関係インストールしたり、削除したり、はたまた開発環境で動かしたり、ビルドしたり。。。

そんなコマンドが、github actionだと怒られちゃうんです。

github actionは下記の感じでymlを書いてます(だいぶ省略してます)

name: Deploy to Production

on:
  push:
    branches:
      - master

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Deploy to server
        run: |
          ssh -o StrictHostKeyChecking=no ueeeei@xxx.xxx.xxx.xxx << 'EOF'
            git pull
            yarn install
            yarn build
          EOF

こんな感じで怒られます

-bash: line 2: yarn: command not found

sshでコマンド実行すると、なんかpathが違うっポイ

どうやら、SSHでコマンドを実行すると、PATHが全然通ってない状態になるみたいです

tera termでssh接続した後に、コマンド実行

xxxx@vm-05ec713a-b5:~/.ssh$ echo $PATH
/home/xxxx/.local/bin:/home/xxxx/.nvm/versions/node/v20.10.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

ローカル端末から直接sshでコマンドをたたく

C:\Users>ssh -i C:\Users\xxxx\.ssh\id_rsa_conoha_server xxxx@xxx.xxx.xxx.xxx echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

C:\Users>

とっても少なくなってます。。。

フルパスでたたくしかないのか・・・

パスが通ってないからと言ってコマンドはたたけないわけではありません。

大本をたたいてやればいいのです。荷が重いけどそうするかあ、、、、

犠牲者を増やさないためにも書きました(原因わからなさすぎて1時間つぶれた😒😒😒😒)