2023-01-01から1年間の記事一覧

Docker container で sleep infinity を使う時は init プロセスを有効にする

Docker container で sleep infinity を使う時は init プロセスを有効にしないとSIGINTなどのシグナルの処理がうまくできずにハングするので、これを使う時は有効にする必要がある。docker compose の compose.yaml ではinit: true の指定が init プロセスを…

axios でリクエストログを出力する

JavaScriptでXHRやFetchなどで通信するとブラウザの開発コンソールのネットワークなどにログが出力されますが、Next.js のSSRなど、Node.js で実行する場合はログはでないです。そのため、通信ログが欲しい場合は、なんらかの方法でログを出力する必要があり…

TypeScript の definite assignment assertion operator の話

TypeScript の class では、プロパティは初期化指定子かコンストラクタで初期化していないとエラーになります。そのため、以下のように記述する必要があります。 class Hoge { value1: string = 'a'; value2: number; // value3: boolean; // ERROR: Propert…

bashで複数の子プロセスを並行で実行して終了を待つ方法(Ctrl+cでの終了に対応)

bashで複数の子プロセスを並行で実行して終了を待つには & でバックグラウンド処理しつつ wait で待つことで実現できるのですが、この方法だと Ctrl+c したときに子プロセスが残ってしまいます。 ( command1 & command2 & wait ) ここで、jobs -p を使えば、…

GitHub Actions でローカルの composite を使う場合

GitHub Actions でローカルにある composite を使う場合は、あらかじめチェックアウトしていないと、ファイルが見つからないとエラーが出てしまうので注意する。 NG: name: hoge on: push: jobs: hoge: name: Hoge runs-on: ubuntu-latest steps: - uses: ./…

CIでGCPのServiceAccountを使って認証する方法

GCP

GCPでServiceAccountで認証するときはGOOGLE_APPLICATION_CREDENTIALS環境変数に鍵ファイルのパスを設定するが、CI実行時にはどうするんだろうと考えた結果、鍵ファイルをbase64でエンコードしたものをCIの環境変数に設定して、CI実行時にデコードしてGOOGLE…

Docker で Compose V2 などをキャッチアップした

docker-compose up ではなく docker compose up を使うように推奨されていることは知っていたが、ちゃんとキャッチアップしてなかったのでした。また、その過程で Compose V2 以外にも新たに知ったことがあったのでここに記す。 docker-compose との違い 大…