Wir haben einige Anläufe gebraucht um einen guten Workaround für Docker und GO Lang zu finden.Dazu haben wir uns einige Gedanken gemacht und diese hier einmal Zusammengetragen. Im allgemeinen braucht man dafür nicht viel.
- Docker installieren
- Dockerfile erstellen
- Docker HUB Account
Den ersten Punkt habe ich euch einmal verlinkt. Für den zweiten Punkt brauchen wir lediglich ein Dockerfile in unserem Verzeichnis. Das Dockerfile sollte wie folgt aussehen. Dabei gibt es natürlich hunderte verschiedenste Aufbau Arten.
Aufbau der Dockerfile
# Import GO Lang
FROM golang:latest
# Creates ENV's
ENV NAME hbdw-statistics
ENV PORT 80
# Copy data to Workdir
COPY . /go/src/${NAME}
WORKDIR /go/src/${NAME}
# Run import
RUN go get ./
# Build Application
RUN go build -o ${NAME}
# CMD & Expose port
CMD ./${NAME}
EXPOSE ${PORT}
Container erstellen & hochladen
Wenn man die Dockerfile erstellt hat, dann muss man nur noch folgende Commands im Terminal ausführen.
1. Docker image erstellen. Wir nennen den build direkt so, dass wir nicht erst das Tag ändern müssen, sondern den Container direkt im nächsten Schritt hochladen können.
$ docker image build -t username/test-container .
2. Im Docker HUB einloggen. Man kann sich wie folgt einloggen:
$ docker login --username username
3. Zum Docker HUB hochladen. Im nächsten Schritt laden wir das Image zum Docker HUB hoch. Von dort können wir sie dann beliebig oft Herunterladen, oder auch eine neue Version hochladen.
$ docker push username/test-container
4. Aus dem Docker HUB herunterladen. Wenn alles hochgeladen ist, dann kann man den Container mehrfach herunterladen und auf Server oder Lokal verwenden. Dies funktioniert wie folgt:
$ docker pull username/test-container
Ich hoffe euch hat diese kurze und kappe Erklärung gefallen, falls ihr Anmerkungen oder Fragen habt, dann meldet euch gerne bei uns: