「markdownlint」を使ってメンテナブルなMarkdownを目指してみる

markdownlintとは

markdownlintは、Markdownファイル用のLinterだ。そして、markdownlint-cliは、markdownlintをCLIで使うためのラッパーである。

たとえば、README.md という下記のMarkdownファイルがあるとしよう。

プログラミング、完全に理解した。

これをmarkdownlintでチェックすると、こんな警告を出してくれる。

README.md: 1: MD041/first-line-h1 First line in file should be a top level heading [Context: "プログラミング、完全に理解した。"]

この例は、一行目はh1属性を書けという警告である。

続きを読む

よく使う「AWS Organizations」のAWS CLIチートシート

アカウント確認

最初にマスターアカウントかどうか確認する。本記事では 999999999999 をマスターアカウントとする。

$ aws sts get-caller-identity
{
    "Account": "999999999999",
    "UserId": "AIDAIBIY7OM4E3EXAMPLE",
    "Arn": "arn:aws:iam::999999999999:user/GiornoGiovanna"
}

Organizationの確認

Organizationリソースが作られていることを確認。Organizationが存在しない場合、エラーになる。

$ aws organizations describe-organization
{
    "Organization": {
        "AvailablePolicyTypes": [
            {
                "Status": "ENABLED",
                "Type": "SERVICE_CONTROL_POLICY"
            }
        ],
        "MasterAccountId": "999999999999",
        "MasterAccountArn": "arn:aws:organizations::999999999999:account/o-lt1example/999999999999",
        "FeatureSet": "ALL",
        "MasterAccountEmail": "aws+master@example.com",
        "Id": "o-lt1example",
        "Arn": "arn:aws:organizations::999999999999:organization/o-lt1example"
    }
}
続きを読む

Docker HubとGitHubを自動連携させる「Automated Build」が楽チンすぎる件

Automated Buildとは

Docker Hubの「Automated Build」は、GitHubでの変更を検知して、Dockerイメージのビルドを自動的に行う機能である。

Docker Hubへイメージをpushするのに、ローカル環境やCI環境でいちいちdocker build・docker pushするというルーチン作業から完全に開放してくれる。

詳細は公式ドキュメントを参照してほしい。

「Automated Build」を使用するには、GitHubとの連携を事前に許可しておく必要がある。ここからその手順を説明する。

続きを読む

コマンドラインから雑に、自分のグローバルIPアドレスを取得する

開発しているときに、自分のマシンのグローバルIPアドレスを知りたくなるときがまれによくある。そんなときは↓を叩く。

curl -s ifconfig.io

ifconfig.io は自分のIPアドレスを返してくれるだけのシンプルなWebサービスで、フツーにブラウザからも見れる。

ベンリ。

「hadolint」にシバかれながら美しいDockerfileを書き上げる

hadolintとは

hadolintはDockerfile用のLintツールだ。

たとえば、下記のようなDockerfileを作って、チェックしてみる。

FROM alpine

RUN cd /tmp && echo 'hello'

すると、次のような警告をしてくれるようになる。

/dev/stdin:1 DL3006 Always tag the version of an image explicitly
/dev/stdin:3 DL3003 Use WORKDIR to switch to a directory
続きを読む

「ECS Fargate」をAWSマネジメントコンソールで構築すると何が起きるか

ECS Fargate

Dockerコンテナを管理してくれる君。Fargate起動タイプを選択すると、クラスタのEC2の管理が不要になる。ひゃっほーい。詳細は、公式ドキュメントを参照する。

AWSマネジメントコンソールによる構築

とりあえず、動かしてみるぐらいだったら、ポチポチしていくだけでOK。VPCなど、ECSに必要なコンポーネントはCloudFormationでついでに構築してくれる。

続きを読む

「ShellCheck」を使って、メンテナンス性の高いシェルスクリプトを実装する

ShellCheckとは

ShellCheckは、シェルスクリプトの静的解析ツールで、マズい書き方をしてると怒ってくれるLinterだ。

たとえば、example.sh という下記のシェルスクリプトがあるとしよう。

echo $0

これをShellCheckでチェックすると、こんな警告を出してくれる。

In example.sh line 1:
echo $0
^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang.
     ^-- SC2086: Double quote to prevent globbing and word splitting.

この例では、「shebangを書け」「変数使うときはダブルクォート使え」的な指摘をしてくれる。

続きを読む