ファイルをbuildする
$ go build main.go(buildするファイル名)
ファイルはカレントディレクトリ配下に作成される。
クロスコンパイルを使う
作るバイナリを決定する
作るバイナリの種類を決めます。buildしたファイルを使いたい環境でgo envを実行。
どんな環境なのかを確認します。
$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="自分のGOPATH"
GORACE=""
GOROOT="/usr/local/go"
...
..
.
この場合は、linuxなので、クロスコンパイルでlinux向けのバイナリを作成します。
GOARCH="amd64"
GOOS="linux"
上記の記述をコマンドで使用します。
$ env GOOS=linux GOARCH=amd64 go build main.go(buildするファイル名)
//↑はfishの場合
//bashの人はenvいらない。
上記を実行すると、linux向けのファイルが作成される。
buildされたファイルを実行する
./main
上記コマンドでbuildされたファイルを実行可能。
環境変数を付与して使いたい場合には以下の通り。
env GO_ENV=○○ ./main
//fish
buildされるファイル名を決める
デフォルトでは、buildするとファイル名は元のファイル名を元に決められます。
build後のファイル名を決めたい場合には、-oをつけます。
env go build -o test main.go
//fish
実行すると、testという名前でファイルが作られます。
さっきと同じようにすれば、実行可能。
.envを参照している場合
コードの中で.envを参照している場合は、環境を変えて実行するとエラーが起きました。
この場合は、その環境でも同じように.envを置くとうまくいきます。
以下のような記事もありますね。
https://qiita.com/kazuph/items/491b87a8f07740c78c8e