Heim > Backend-Entwicklung > Golang > Lokale Entwicklung und Tests mit Vagrant und Docker in Beego

Lokale Entwicklung und Tests mit Vagrant und Docker in Beego

WBOY
Freigeben: 2023-06-22 17:13:52
Original
737 Leute haben es durchsucht

Da Cloud Computing und Virtualisierungstechnologie immer ausgereifter werden, beginnen immer mehr Entwickler, Virtualisierungstechnologie für lokale Entwicklung und Tests zu nutzen. Virtualisierungstechnologie hilft bei der Isolierung von Entwicklungsumgebungen und macht die Verwaltung und Entwicklung mehrerer Umgebungen bequemer und flexibler. In diesem Artikel erfahren Sie, wie Sie eine Vagrant + Docker-Entwicklungsumgebung einrichten, wenn Sie das Beego-Framework für lokale Entwicklung und Tests verwenden.

Was sind Vagrant und Docker?

Vagrant ist eine Virtualisierungstechnologie, mit der Sie schnell eine virtualisierte Entwicklungsumgebung erstellen und verwalten können. Vagrant kann verschiedene virtuelle Engines unterstützen (z. B. VirtualBox, VMware, Hyper-V usw.), sodass Sie die Engine auswählen können, die zu Ihrer aktuellen Entwicklungsumgebung passt, um Ihre virtuelle Entwicklungsumgebung auszuführen.

Docker ist eine Containerisierungstechnologie, die Ihnen hilft, Anwendungen und Dienste schnell zu erstellen, bereitzustellen und auszuführen. Docker-Container können in jeder Umgebung ausgeführt werden und bieten leistungsstarke Mechanismen zur Umgebungsisolierung und Versionskontrolle.

Warum Vagrant + Docker für lokale Entwicklung und Tests verwenden?

Wenn wir unseren Code in mehreren Umgebungen testen müssen, müssen wir genauso genau entwickeln und testen wie die Produktionsumgebung, insbesondere müssen die Unterschiede und die Konfiguration jeder Umgebung mit der Produktionsumgebung konsistent sein. In diesem Fall kann die Verwendung von Vagrant + Docker Entwicklern dabei helfen, komplexe Test- und Wartungsarbeiten in mehreren Umgebungen durchzuführen, ohne sich über Inkonsistenzen in den Umgebungsparametereinstellungen und Fehler aufgrund von Fehlbedienungen Gedanken machen zu müssen.

Installieren Sie Vagrant und Docker

Bevor Sie Vagrant + Docker verwenden, müssen Sie diese beiden Tools auf Ihrem Computer installieren. Beide Tools verfügen über eine gute Dokumentation und Community-Unterstützung. Daher müssen Sie während des Installationsprozesses auf die folgenden Schritte achten:

  1. Geben Sie die [offizielle Vagrant-Website] (https://www.vagrantup.com/downloads) ein und laden Sie Vagrant herunter .
  2. Laden Sie Docker je nach Betriebssystem, das Sie derzeit verwenden, von der [offiziellen Docker-Website] (https://docs.docker.com/engine/install/) herunter und installieren Sie es. Beachten Sie, dass die Einrichtung eines Docker-Images erforderlich ist.

Konfigurieren der Docker-Umgebung in Vagrant

Mit den oben genannten Schritten haben Sie Vagrant und Docker erfolgreich installiert und können nun Vagrant verwenden, um eine neue virtuelle Maschine auszuführen, die über eine Docker-Laufumgebung verfügt. Bevor wir Vagrant zum Ausführen der virtuellen Maschine verwenden, müssen wir die Vagrant-Datei konfigurieren:

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
Nach dem Login kopieren

Die obige Konfigurationsdatei bedeutet:

  1. Verwenden Sie ubuntu/focal64 als Betriebssystem der virtuellen Maschineubuntu/focal64 作为虚拟机的操作系统
  2. 将虚拟机的 8080 端口映射到主机的 8080 端口上
  3. 分配给虚拟机的内存大小是 2048MB
  4. 虚拟机分配的 CPU 是 2 个核。

启动 Vagrant 虚拟机

现在,执行以下命令以启动 Vagrant 虚拟机:

vagrant up
Nach dem Login kopieren

在执行此命令后,Vagrant 将自动下载安装 Ubuntu 虚拟机,这个过程可能需要一些时间。安装完成后,您将可以使用以下命令通过 SSH 登录到 Vagrant 虚拟机:

vagrant ssh
Nach dem Login kopieren

使用 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}
Nach dem Login kopieren

在这个Dockerfile中,我们使用 Golang-1.16 作为基于镜像,并下载安装了一些必要的依赖。然后,我们复制所有源代码到镜像中,并使用 golang 的 go install 命令构建安装您的 Beego 应用程序。在容器启动时,Beego 应用程序作为入口点(Entry Point)启动

  1. 构建容器。在 Beego 应用程序的根目录下,运行以下命令:
docker build --build-arg MY_APP_PATH=github.com/your-username/your-app -t my-app-name:v1 .
Nach dem Login kopieren
  1. 运行容器。在 Beego 应用程序的根目录下,运行以下命令:
docker run --rm -it -v $(pwd):/go/src/github.com/your-username/your-app -p 8080:8080 my-app-name:v1
Nach dem Login kopieren

在这个命令中,我们将当前目录绑定到容器中的 /go/src/github.com/your-username/your-app

Ändern Der Port 8080 der virtuellen Maschine ist Port 8080 des Hosts zugeordnet.

Die der virtuellen Maschine zugewiesene Speichergröße beträgt 2048 MB.

Die der virtuellen Maschine zugewiesene CPU besteht aus 2 Kernen. 🎜🎜🎜Starten Sie die virtuelle Vagrant-Maschine.🎜🎜Führen Sie nun den folgenden Befehl aus, um die virtuelle Vagrant-Maschine zu starten: 🎜rrreee🎜Nach der Ausführung dieses Befehls lädt Vagrant die virtuelle Ubuntu-Maschine automatisch herunter und installiert sie. Dieser Vorgang kann einige Zeit dauern. Nachdem die Installation abgeschlossen ist, können Sie sich über SSH mit dem folgenden Befehl bei der virtuellen Vagrant-Maschine anmelden: 🎜rrreee🎜Verwenden Sie Docker, um die Beego-Anwendung auszuführen🎜🎜Mit den oben genannten Vorgängen haben Sie erfolgreich eine virtuelle Maschine erstellt eine Docker-Laufumgebung. Als Nächstes können Sie Ihre Beego-Anwendung mit Docker ausführen. Sie müssen die folgenden Schritte ausführen: 🎜🎜🎜Verwenden Sie den Befehl git clone in der virtuellen Vagrant-Maschine, um den Quellcode Ihrer Beego-Anwendung herunterzuladen. 🎜🎜Erstellen Sie eine Datei mit dem Namen Dockerfile im Stammverzeichnis Ihrer Beego-Anwendung. Die Docker-Datei enthält einige Anweisungen zum Erstellen eines Docker-Containers. Hier ist ein Beispiel: 🎜🎜rrreee🎜In dieser Docker-Datei verwenden wir Golang-1.16 als Basis-Image und laden einige notwendige Abhängigkeiten herunter und installieren sie. Anschließend kopieren wir den gesamten Quellcode in das Image und erstellen und installieren Ihre Beego-Anwendung mit dem Golang-Befehl go install. Wenn der Container startet, startet die Beego-Anwendung als Einstiegspunkt zum Erstellen des Containers. Führen Sie im Stammverzeichnis der Beego-Anwendung den folgenden Befehl aus: 🎜🎜rrreee
    🎜Führen Sie den Container aus. Führen Sie im Stammverzeichnis Ihrer Beego-Anwendung den folgenden Befehl aus: 🎜🎜rrreee🎜In diesem Befehl binden wir das aktuelle Verzeichnis an /go/src/github.com/your-username/your-app Verzeichnis, sodass Codeänderungen synchron innerhalb des Containers aktualisiert werden. Ordnen Sie gleichzeitig den 8080-Port des Containers dem 8080-Port des Hosts zu, damit wir über den Browser auf die Beego-Anwendung im Container zugreifen können. 🎜🎜Zusammenfassung🎜🎜Die oben genannten Schritte können Ihnen helfen zu verstehen, wie Sie mit Vagrant + Docker eine Debugging-Umgebung konfigurieren, um Ihnen das Entwickeln und Testen derselben wie in der Produktionsumgebung zu erleichtern. Die richtige lokale Entwicklungsumgebung kann Ihre Entwicklung und Ihren Prozess beschleunigen, Einschränkungen überwinden und fantastischere Ideen hervorbringen. 🎜

Das obige ist der detaillierte Inhalt vonLokale Entwicklung und Tests mit Vagrant und Docker in Beego. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage