英語 | 简体中文 | 繁体中文
Go で Web サイトを開発し、gin フレームワークを使用し始めたとき、gin にライブリロード機能がないのは残念でした。それでいろいろ調べて新しく試してみましたが、あまり柔軟性がないようなので、より良く書き直すつもりでした。ついにAirが誕生しました。さらに、ピルにも感謝します。新鮮なものも空気もありません:)
Air は、Go アプリケーションを開発するためのもう 1 つのライブリロード コマンド ライン ユーティリティです。プロジェクトのルート ディレクトリでair
実行し、そのままにして、コードに集中します。
注: このツールは、本番環境へのホットデプロイとは何の関係もありません。
air config フィールドを引数としてサポートします。
ビルドコマンドと実行コマンドを設定したい場合は、設定ファイルなしで次のコマンドのように使用できます。
air --build.cmd " go build -o bin/api cmd/run.go " --build.bin " ./bin/api "
リストを入力として受け取る引数の項目を区切るには、コンマを使用します。
air --build.cmd " go build -o bin/api cmd/run.go " --build.bin " ./bin/api " --build.exclude_dir " templates,build "
go install
経由 (推奨)go 1.23 以降の場合:
go install github.com/air-verse/air@latest
# binary will be $(go env GOPATH)/bin/air
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s -- -b $( go env GOPATH ) /bin
# or install it into ./bin/
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s
air -v
# binary will be /usr/local/bin/air
curl -sSfL https://goblin.run/github.com/air-verse/air | sh
# to put to a custom path
curl -sSfL https://goblin.run/github.com/air-verse/air | PREFIX=/tmp sh
この Docker イメージ cosmtrek/air をプルしてください。
docker/podman run -it --rm
-w " <PROJECT> "
-e " air_wd=<PROJECT> "
-v $( pwd ) : < PROJECT >
-p < PORT > : < APP SERVER PORT >
cosmtrek/air
-c < CONF >
通常のアプリのように air を継続的に使用したい場合は、${SHELL}rc で関数を作成できます (Bash、Zsh など)。
air () {
podman/docker run -it --rm
-w " $PWD " -v " $PWD " : " $PWD "
-p " $AIR_PORT " : " $AIR_PORT "
docker.io/cosmtrek/air " $@ "
}
<PROJECT>
はコンテナ内のプロジェクト パスです。例: /go/example コンテナに入る場合は、--entrypoint=bash を追加してください。
私のプロジェクトの 1 つは Docker で実行されます。
docker run -it --rm
-w " /go/src/github.com/cosmtrek/hub "
-v $( pwd ) :/go/src/github.com/cosmtrek/hub
-p 9090:9090
cosmtrek/air
別の例:
cd /go/src/github.com/cosmtrek/hub
AIR_PORT=8080 air -c " config.toml "
これにより、 $PWD
現在のディレクトリに置き換えられます。 $AIR_PORT
は公開先のポート、 $@
はアプリケーション自体の引数 (例: -c) を受け入れることになります。
入力を減らすために、 alias air='~/.air'
.bashrc
または.zshrc
に追加できます。
まずプロジェクトに入ります
cd /path/to/your_project
最も単純な使用法が実行されます
# firstly find `.air.toml` in current directory, if not found, use defaults
air -c .air.toml
次のコマンドを実行すると、 .air.toml
構成ファイルをデフォルト設定で現在のディレクトリに初期化できます。
air init
この後は、追加の引数を指定せずにair
コマンドを実行するだけで、構成に.air.toml
ファイルが使用されます。
air
設定を変更するには、air_example.toml ファイルを参照してください。
air コマンドの後に引数を追加することで、ビルドされたバイナリを実行するための引数を渡すことができます。
# Will run ./tmp/main bench
air bench
# Will run ./tmp/main server --port 8080
air server --port 8080
air コマンドに渡される引数とビルドされたバイナリを--
引数で区切ることができます。
# Will run ./tmp/main -h
air -- -h
# Will run air with custom config and pass -h argument to the built binary
air -c .air.toml -- -h
services :
my-project-with-air :
image : cosmtrek/air
# working_dir value has to be the same of mapped volume
working_dir : /project-package
ports :
- <any>:<any>
environment :
- ENV_A=${ENV_A}
- ENV_B=${ENV_B}
- ENV_C=${ENV_C}
volumes :
- ./project-relative-path/:/project-package/
air -d
すべてのログを出力します。
Dockerfile
# Choose whatever you want, version >= 1.16
FROM golang:1.23-alpine
WORKDIR /app
RUN go install github.com/air-verse/air@latest
COPY go.mod go.sum ./
RUN go mod download
CMD [ "air" , "-c" , ".air.toml" ]
docker-compose.yaml
version : " 3.8 "
services :
web :
build :
context : .
# Correct the path to your Dockerfile
dockerfile : Dockerfile
ports :
- 8080:3000
# Important to bind/mount your codebase dir to /app dir for live reload
volumes :
- ./:/app
export GOPATH= $HOME /xxxxx
export PATH= $PATH : $GOROOT /bin: $GOPATH /bin
export PATH= $PATH : $( go env GOPATH ) /bin # Confirm this line in your .profile and make sure to source the .profile if you add it!!!
ビン内の `' をエスケープするにはを使用する必要があります。関連問題: #305
#365
[ build ]
cmd = " /usr/bin/true "
詳細については、問題 #512 を参照してください。
include_dir
、 include_ext
、またはinclude_file
にあることを確認します。</body>
タグがあることを確認してください[ proxy ]
enabled = true
proxy_port = < air proxy port>
app_port = < your server port>
依存関係を管理するためにgo mod
使用しているため、Go 1.16 以降が必要であることに注意してください。
# Fork this project
# Clone it
mkdir -p $GOPATH /src/github.com/cosmtrek
cd $GOPATH /src/github.com/cosmtrek
git clone [email protected]: < YOUR USERNAME > /air.git
# Install dependencies
cd air
make ci
# Explore it and happy hacking!
make install
プルリクエストは大歓迎です。
# Checkout to master
git checkout master
# Add the version that needs to be released
git tag v1.xx.x
# Push to remote
git push origin v1.xx.x
# The CI will process and release a new version. Wait about 5 min, and you can fetch the latest version
たくさんのサポーターに感謝します。あなたの優しさをいつも覚えています。
GNU 一般公衆利用許諾書 v3.0