Docker Init を使って Go プロジェクトを初期化する
このステップでは、新しい Go プロジェクトを初期化し、docker init
を使って必要な Dockerfile と docker-compose.yml ファイルを生成します。これにより、Go アプリケーションをコンテナ化するための出発点が得られます。
まず、Go プロジェクト用の新しいディレクトリを作成しましょう。LabEx VM でターミナルを開き、以下のコマンドを実行します。
mkdir my-go-app
cd my-go-app
これらのコマンドは、~/project
ディレクトリ内に my-go-app
という名前の新しいディレクトリを作成し、その後カレントディレクトリを my-go-app
に変更します。
次に、Go モジュールを初期化する必要があります。これにより、プロジェクトの依存関係を追跡する go.mod
ファイルが作成されます。
ターミナルで以下のコマンドを実行します。
go mod init my-go-app
このコマンドは、my-go-app
という名前の新しい Go モジュールを初期化します。以下のような出力が表示されるはずです。
go: creating new go.mod: module my-go-app
go: to add module requirements and sums:
go mod tidy
では、簡単な Go アプリケーションを作成しましょう。nano
エディタを使って my-go-app
ディレクトリ内に main.go
という名前の新しいファイルを作成します。
nano main.go
main.go
ファイルに以下のコードを追加します。
package main
import "fmt"
func main() {
fmt.Println("Hello, Docker!")
}
これは、コンソールに "Hello, Docker!" を出力する簡単な Go プログラムです。
Ctrl+X
を押し、次に Y
を押し、最後に Enter
を押して、ファイルを保存して nano
エディタを終了します。
これで、docker init
を使って Dockerfile と docker-compose.yml ファイルを生成します。ただし、LabEx VM にはデフォルトで Docker Compose がインストールされていません。まずはインストールする必要があります。
curl
を使って Docker Compose の最新バージョンをダウンロードします。
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Docker Compose のバイナリを実行可能にします。
sudo chmod +x /usr/local/bin/docker-compose
Docker Compose のバージョンを確認して、インストールを検証します。
docker-compose --version
以下のような出力が表示されるはずです。
docker-compose version 1.29.2, build xxxxxxx
これで Docker Compose がインストールされたので、docker init
を進めることができます。
ターミナルで以下のコマンドを実行します。
docker init
docker init
は、Dockerfile と docker-compose.yml ファイルを設定するために一連の質問をします。この実験での推奨回答は以下の通りです。
- What do you want to call this application?
my-go-app
- What port is this app listening on?
3000
(これはプレースホルダーで、この簡単な例では実際にはポートを使用しません)
- What is the main file to execute?
main.go
- Would you like to include the Docker Compose configuration?
Yes
- Please choose a Docker Compose version:
2.0
これらの質問に答えた後、docker init
は my-go-app
ディレクトリ内に Dockerfile
と docker-compose.yml
ファイルを生成します。
生成されたファイルの内容は、cat
コマンドを使って表示できます。
cat Dockerfile
cat docker-compose.yml
これらのファイルは、Docker コンテナ内で Go アプリケーションをビルドして実行するための基本的な設定を提供します。次のステップでは、これらのファイルをカスタマイズして、より適切な設定にします。