検索
ホームページバックエンド開発GolangBeego の Vagrant と Docker を使用したローカル開発とテスト

クラウド コンピューティングと仮想化テクノロジが成熟し続けるにつれて、ますます多くの開発者がローカルの開発とテストに仮想化テクノロジを使用し始めています。仮想化テクノロジーは、開発環境を分離するのに役立ち、複数の環境の管理と開発をより便利かつ柔軟にします。この記事では、ローカル開発とテストに Beego フレームワークを使用する場合に、Vagrant Docker 開発環境をセットアップする方法を紹介します。

Vagrant と Docker とは何ですか?

Vagrant は、仮想化開発環境を迅速に構築および管理できる仮想化テクノロジです。 Vagrant はさまざまな仮想エンジン (VirtualBox、VMware、Hyper-V など) をサポートできるため、現在の開発環境に適したエンジンを選択して仮想開発環境を実行できます。

Docker は、アプリケーションとサービスを迅速に作成、デプロイ、実行するのに役立つコンテナ化テクノロジです。 Docker コンテナはあらゆる環境で実行でき、強力な環境分離およびバージョン管理メカニズムを提供します。

なぜローカル開発とテストに Vagrant Docker を使用するのでしょうか?

複数の環境でコードをテストする必要がある場合、実稼働環境と同じくらい正確に開発およびテストする必要があり、特に各環境の違いや構成が実稼働環境と一致している必要があります。この場合、Vagrant Docker を使用すると、開発者は環境パラメータ設定の不一致や誤操作によるエラーを心配することなく、複数の環境で複雑なテストやメンテナンス作業を完了できます。

Vagrant と Docker のインストール

Vagrant Docker の使用を開始する前に、これら 2 つのツールをマシンにインストールする必要があります。どちらのツールにも充実したドキュメントとコミュニティ サポートがあるため、インストール プロセス中は次の手順に注意する必要があります。

  1. [Vagrant 公式 Web サイト](https://www.vagrantup.com) にアクセスしてください。 /downloads ) を選択し、Vagrant をダウンロードします。
  2. 現在使用しているオペレーティング システムに応じて、[Docker 公式 Web サイト](https://docs.docker.com/engine/install/) から Docker をダウンロードしてインストールします。 Dockerイメージのセットアップが必要なので注意してください。

Vagrant での Docker 環境の構成

上記の手順により、Vagrant と Docker が正常にインストールされました。これで、Vagrant を使用して新しい仮想マシンを実行できるようになります。 Docker オペレーティング環境。 Vagrant を使用して仮想マシンを実行する前に、Vagrantfile を構成する必要があります:

Vagrant.configure("2") do |config|

  config.vm.box = "ubuntu/focal64"
  config.vm.network "forwarded_port", guest: 8080, host: 8080

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpumax = "2"
    vb.cpus = "1"
  end

  config.vm.provision "docker"
end

上記の構成ファイルは次のことを意味します:

  1. Use ubuntu/focal64 as the仮想マシンの操作 システム
  2. 仮想マシンの 8080 ポートをホストの 8080 ポートにマップします
  3. 仮想マシンに割り当てられたメモリ サイズは 2048MB
  4. 仮想マシンに割り当てられる CPU は 2 コアです。

Vagrant 仮想マシンの起動

次に、次のコマンドを実行して Vagrant 仮想マシンを起動します。

vagrant up

このコマンドを実行すると、Vagrant が自動的にダウンロードされ、 Ubuntu 仮想マシンをインストールするには、このプロセスに時間がかかる場合があります。インストールが完了すると、次のコマンドを使用して SSH 経由で Vagrant 仮想マシンにログインできるようになります。

vagrant ssh

Docker を使用して Beego アプリケーションを実行します

上記の操作により、 Docker ランタイム環境の仮想マシンが正常に作成されました。次に、Docker を使用して Beego アプリケーションを実行できます。次の手順に従う必要があります。

  1. Vagrant 仮想マシンで git clone コマンドを使用して、Beego アプリケーションをダウンロードします。ソースコード。
  2. Beego アプリケーションのルート ディレクトリに Dockerfile という名前のファイルを作成します。 Dockerfile には、Docker コンテナーを構築するためのいくつかの手順が含まれています。以下は例です:
FROM golang:1.16

ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

RUN apt-get update && apt-get -y install build-essential git-all

RUN mkdir -p $GOPATH/src/${MY_APP_PATH}/
ADD . $GOPATH/src/${MY_APP_PATH}/

WORKDIR $GOPATH/src/${MY_APP_PATH}/
RUN go install ${MY_APP_PATH}

ENTRYPOINT ${GOPATH}/bin/${MY_APP}

この Dockerfile では、Golang-1.16 をベース イメージとして使用し、必要な依存関係をいくつかダウンロードしてインストールします。次に、すべてのソース コードをイメージにコピーし、golang の go install コマンドを使用して Beego アプリケーションをビルドしてインストールします。コンテナが起動すると、Beego アプリケーションが

  1. ビルド コンテナを起動するためのエントリ ポイントとして機能します。 Beego アプリケーションのルート ディレクトリで、次のコマンドを実行します:
docker build --build-arg MY_APP_PATH=github.com/your-username/your-app -t my-app-name:v1 .
  1. コンテナを実行します。 Beego アプリケーションのルート ディレクトリで、次のコマンドを実行します。
docker run --rm -it -v $(pwd):/go/src/github.com/your-username/your-app -p 8080:8080 my-app-name:v1

このコマンドでは、現在のディレクトリをコンテナ内の /go/src/github.com/ にバインドします。 -username/your-app ディレクトリ。これにより、コードの変更がコンテナ内で同期的に更新されます。同時に、コンテナの 8080 ポートをホストの 8080 ポートにマップし、ブラウザからコンテナ内の Beego アプリケーションにアクセスできるようにします。

概要

上記の手順は、Vagrant Docker を使用してデバッグ環境を構成し、運用環境と同じ開発とテストを容易にする方法を理解するのに役立ちます。適切なローカル開発環境は、開発とプロセスをスピードアップし、制限を打ち破り、より素晴らしいアイデアを革新することができます。

以上がBeego の Vagrant と Docker を使用したローカル開発とテストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
GOプログラミング言語を備えたスケーラブルなシステムを構築しますGOプログラミング言語を備えたスケーラブルなシステムを構築しますApr 25, 2025 am 12:19 AM

goisidealforbuildingscalablessystemsduetoitssimplicity、効率性、およびビルド・インコンカレンシsupport.1)

GOでINIT機能を効果的に使用するためのベストプラクティスGOでINIT機能を効果的に使用するためのベストプラクティスApr 25, 2025 am 12:18 AM

intionSingOrunautomaticallyは()andareuseforstingupenments andinitializingvariables.usemforsimpletasks、回避効果を回避し、測定可能性を測定することを検討します。

GOパッケージのINIT機能の実行順序GOパッケージのINIT機能の実行順序Apr 25, 2025 am 12:14 AM

goinitializeSpackages intheordertheyareimport extionsitions withinitionsiteintheirdefinition ordord、およびfilenamesdetermineTheOordCrossMultiplefiles.thisprocesccanbeandeanded by -dependenciessedieSiesは、このマイレアドカンフレシニティン化の対象となります

Goでカスタムインターフェイスを定義および使用しますGoでカスタムインターフェイスを定義および使用しますApr 25, 2025 am 12:09 AM

custominterfacesingoarecrucialforwritingfficable、maintable、a​​ndtatablecode.theyeNabledeveloveerStofofofovioroverimplementation、拡張、methodsodsignaturesthattypespessmustimment、interfaceforoderueusavelya

GOのモッキングとテストのためにインターフェイスを使用しますGOのモッキングとテストのためにインターフェイスを使用しますApr 25, 2025 am 12:07 AM

シミュレーションとテストにインターフェイスを使用する理由は、インターフェイスにより、実装を指定せずに契約の定義を可能にし、テストをより孤立し、メンテナンスしやすくするためです。 1)インターフェイスの暗黙的な実装により、モックオブジェクトを簡単に作成できます。これにより、テストの実際の実装を置き換えることができます。 2)インターフェイスを使用すると、ユニットテストでのサービスの実際の実装を簡単に置き換えることができ、テストの複雑さと時間を短縮できます。 3)インターフェイスによって提供される柔軟性により、さまざまなテストケースのシミュレートされた動作の変更が可能になります。 4)インターフェイスは、テスト可能なコードを最初から設計し、コードのモジュール性と保守性を向上させるのに役立ちます。

GOのパッケージ初期化にinitを使用しますGOのパッケージ初期化にinitを使用しますApr 24, 2025 pm 06:25 PM

Goでは、init関数はパッケージの初期化に使用されます。 1)init関数は、パッケージの初期化時に自動的に呼び出され、グローバル変数の初期化、接続の設定、構成ファイルの読み込みに適しています。 2)ファイルの順序で実行できる複数のinit関数がある場合があります。 3)それを使用する場合、実行順序、テストの難易度、パフォーマンスへの影響を考慮する必要があります。 4)副作用を減らし、依存関係の注入を使用し、初期化を遅延させることをお勧めします。

GoのSelectステートメント:マルチプレックスコンカレント操作GoのSelectステートメント:マルチプレックスコンカレント操作Apr 24, 2025 pm 05:21 PM

go'sselectStatementStreamLinesConcurrentProgrambyMultipLexIngoperations.1)Itallow swaitingonMultipleChanneloperations、実行、exectingThefirstreadyone.2)

Go:Context and Waitgroupsの高度な並行性テクニックGo:Context and Waitgroupsの高度な並行性テクニックApr 24, 2025 pm 05:09 PM

コンテキストアンドウェイトグループは、フォーマネングに焦点を合わせており、contextAllowsingSignalingCancellationAndDeadlinesAcrossapiboundariesを採用し、GoroutinesscanSclacefly.2)WaitGroupssynchronizeGoroutines、Allcompletebebroproproproproproproprotinesを保証します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。