alpine linux でインストールされる python3 のバージョン
Cloud SDK で python3.9 を利用したときにエラーになったのでメモ
Cloud SDK にはサポートされている Python3 のバージョンがあってそれ以外を使ったときにエラーになることがある。
今回は node:16.13.2-alpine
を使って apk add python3
をしたときに Python3.9 がインストールされた。
Cloud SDK のインストール時のエラーは↓
Welcome to the Google Cloud SDK! WARNING: You appear to be running this script as root. This may cause the installation to be inaccessible to users other than the root user. Traceback (most recent call last): File "/google-cloud-sdk/bin/bootstrapping/install.py", line 12, in <module> import bootstrapping File "/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 32, in <module> import setup # pylint:disable=g-import-not-at-top File "/google-cloud-sdk/bin/bootstrapping/setup.py", line 57, in <module> from googlecloudsdk.core.util import platforms File "/google-cloud-sdk/lib/googlecloudsdk/__init__.py", line 23, in <module> from googlecloudsdk.core.util import importing File "/google-cloud-sdk/lib/googlecloudsdk/core/util/importing.py", line 23, in <module> import imp File "/usr/lib/python3.9/imp.py", line 23, in <module> from importlib import util File "/usr/lib/python3.9/importlib/util.py", line 2, in <module> from . import abc File "/usr/lib/python3.9/importlib/abc.py", line 17, in <module> from typing import Protocol, runtime_checkable File "/usr/lib/python3.9/typing.py", line 26, in <module> import re as stdlib_re # Avoid confusion with the re we export. File "/usr/lib/python3.9/re.py", line 124, in <module> import enum File "/google-cloud-sdk/lib/third_party/enum/__init__.py", line 26, in <module> spec = importlib.util.find_spec('enum') AttributeError: module 'importlib' has no attribute 'util' Exited with code exit status 1
alpine Linux でインストールされるバージョンは↓で確認できる。 pkgs.alpinelinux.org
python3.8 を入れたいときは、 ↓のようにして v3.13
を指定すると良さそう。
apk --no-cache add --repository http://dl-cdn.alpinelinux.org/alpine/v3.13/main python3~=3.8
Ref
macの構成管理メモ
PC入れ替えをしたときに設定していた項目をすれて違和感を感じることが多かったのでメモ
- Ansible で構成管理することもできそう
defaults
コマンドで今の設定を確認できる。そこから設定したい項目を探して確認する- shell で
defaults
コマンドで設定していくでも良さそう - キーボードの Caps Lock のキーを変更するなどはできない。するには少しハックしないといけなさそう。キーボードごとに設定なのでめんどくさそう。 keyboard - Changing modifier keys from the command line - Ask Different
Ref
Github ActionsでPRが作成されたときにそのブランチ名を取得する
単純にブランチ名を取得しても remotes/pull/10/merge
のような形で自分が作成したブランチ名とは違っていました。
コミットハッシュ値も違うのでベースブランチとPRしたブランチをマージしたものとかなんでしょうか?
PRの最後のコミットハッシュ値は github.event.pull_request.head.sha
で取得できるのでそこからブランチ名を特定する方法にしたところ無事ブランチ名が取得できました。
name: pr_opened on: pull_request: types: - opened jobs: comment: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Create comment env: PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} run: | git fetch --no-tags --depth=1 origin HASH_AND_BRANCH=`git name-rev ${PR_HEAD_SHA}` BRANCH=`echo "${HASH_AND_BRANCH##*remotes/origin/}"` echo "PR Opened" >> comments echo "Branch name: ${BRANCH}" >> comments sed -i -z 's/\n/\\n/g' comments - name: Post comment env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} URL: ${{ github.event.pull_request.comments_url }} run: | curl -X POST \ -H "Authorization: token ${GITHUB_TOKEN}" \ -d "{\"body\": \"$(cat comments)\"}" \ ${URL}
CloudFrontで簡単なフロントエンド環境を構築するテンプレートを作った
CloudFront と S3 を使った簡単な静的サイトを作るときの CloudFormation のテンプレートを作った
構成は S3 においた index.html を CloudFront でキャッシュするだけの構成です。
CloudFront に設定出来る SSL 証明書は 米国東部 (バージニア北部) us-east-1
にする必要があるようで、その部分だけは注意が必要だと思った
VSCode で手動で vue-i18n-ally の設定を書くメモ
Vue.js で i18n の設定をしていると実際の日本語が何かぱっと見でわからないです。
VSCode を使っている場合、プラグインの vue-i18n-ally を入れることで日本語が見れる様になって便利でした。
手動で設定を書かないとうまく動かせなかったので設定を残しておきます。
.vscode/settings.json
{ "vue-i18n-ally.readonly": true, "vue-i18n-ally.experimental.sfc": true, "vue-i18n-ally.localesPaths": [ "src/locales" ], "vue-i18n-ally.keystyle": "nested", "vue-i18n-ally.sourceLanguage": "ja" }
Nuxt 2.8 から 2.9 へのマイグレーションメモ
Nuxt TypeScript というページができていました。 Nuxt 2.8 から 2.9 のマイグレーション手順が書いてあるのですがメモを残します。
元環境
- Nuxt 2.8
- TypeScript (nuxt.config.ts)
を使用している環境
きちんと読めば問題無いのですが、移行手順書の 5. TypeScript Runtime (optional)
を無視すると nuxt.config.js
が見つからないため、デフォルトの設定で動きます。
マイグレーション手順
- パッケージ更新
npm uninstall @nuxt/typescript npm i nuxt npm i -D @nuxt/typescript-build npm i @nuxt/typescript-runtime
- npm script修正
nuxt
を nuxt-ts
に変更
- 型定義の読み込み修正
import { Context } from '@nuxt/vue-app'; // nuxt 2.8 import { Context } from '@nuxt/types'; // nuxt 2.9
import { ErrorParams } from '@nuxt/vue-app'; // nuxt 2.8 import { NuxtError } from '@nuxt/types/app'; / nuxt 2.9
import NuxtConfiguration from '@nuxt/config'; // nuxt 2.8 import { Configuration as NuxtConfiguration } from '@nuxt/types'; // nuxt 2.9
- tsconfig.js の修正
"types": ["@types/node", "@types/jest", "@nuxt/vue-app"] // nuxt 2.8 "types": ["@types/node", "@types/jest", "@nuxt/types"] // nuxt 2.9
- extract-css-chunks-webpack-plugin の設定修正
css の order ででるWARNINGを消している場合オプションが変更されています。
https://github.com/faceyspacey/extract-css-chunks-webpack-plugin/blob/v4.6.0/src/index.js#L534
options.orderWarning = false; // nuxt 2.8 options.ignoreOrder = true; // nuxt 2.9
EmbulkでMySQLからBigQueryへデータを転送するときの注意点
Embulk を使って MySQL から BigQuery へデータを転送するときにはまった部分を忘れないように記録として残しておく
DBの設定などで一度に大量のデータを取得することが難しい場合などに fetch_rows
で1度に処理するデータ量を調整することが必要になることがありそうです。
例
in: type: mysql fetch_rows: 1000
改行が含まれるデータを BigQuery へ転送する場合は allow_quoted_newlines: 1
が必要になります。
例
out: type: bigquery allow_quoted_newlines: 1
参考
embulkでBigqueryにテキストデータ流し込めなかった話 - 無気力生活 (ノ ´ω`)ノ ~゜
TB越えのMySQL 巨大テーブルを 1日で BigQueryへLOADする - Mercari Engineering Blog