Schließlich ist das Portfolio vollständig und bereit zur Bereitstellung Ich würde gerne hart ausgeben.
** Erstellt App ToDoGame ** github
** Verwendete Technologie **
Die Nachfrage nach Docker wächst und wird für Ingenieure zu einer unverzichtbaren Technologie.
Ein Behälter zur Aufbewahrung von Gegenständen. Der Container enthält die Anwendung.
Es ist sehr praktisch, Ihre Heimanwendung zur Arbeit in einem tragbaren Container mitzunehmen.
[Was ist Docker? Was ist eine Docker-Datei? ](Https://qiita.com/matsugaknight/items/c77fec14ec3c281a47b4#:~:text=Dockerfile%20%E3%81%A8%E3%81%AF-,Docker%E4%B8%8A%E3%81% A7% E5% 8B% 95% E4% BD% 9C% E3% 81% 95% E3% 81% 9B% E3% 82% 8B% E3% 82% B3% E3% 83% B3% E3% 83% 86% E3% 83% 8A% E3% 81% AE% E6% A7% 8B% E6% 88% 90% E6% 83% 85% E5% A0% B1,% E3% 81% 99% E3% 82% 8B% E3 % 81% 9F% E3% 82% 81% E3% 81% AE% E3% 83% 95% E3% 82% A1% E3% 82% A4% E3% 83% AB% E3% 81% A7% E3% 81 % 99% E3% 80% 82)
Eine Datei, die die Konfigurationsinformationen des Containers beschreibt, der auf Docker ausgeführt wird.
Erstellen Sie ein Docker-Image mit dem Docker-Build-Befehl basierend auf den in der Docker-Datei beschriebenen Informationen.
Als ich diesen Artikel las, wurde ich von meinem eigenen Respekt inspiriert und sagte: "Es ist zu erstaunlich ... ich glaube nicht, dass ich im selben Job bin." [Teil 1] Testen / Bereitstellen eines mit Rails + Nuxt + MySQL + Docker mit ECS / ECR / CircleCI erstellten WEB-Dienstes und Konvertieren in Terraform
ToDoGame
├─docker-compose.yml
├─frontend
| ├─Dockerfile
└─backend
├─Dockerfile
├─Gemfile
└─Gemfile.lock
Dockerfile
#Festlegen des Basisbilds(Verwenden Sie alpine, um das Gewicht des Bildes zu reduzieren)
FROM ruby:2.7.1-alpine3.10
#Laden Sie die erforderlichen Pakete herunter
ENV RUNTIME_PACKAGES="linux-headers libxml2-dev make gcc libc-dev nodejs tzdata mysql-dev mysql-client yarn" \
DEV_PACKAGES="build-base curl-dev" \
HOME="/app" \
LANG=C.UTF-8 \
TZ=Asia/Tokyo
#Wechseln Sie in das Arbeitsverzeichnis
WORKDIR ${HOME}
#Kopieren Sie die erforderlichen Dateien vom Host (Dateien auf Ihrem Computer) nach Docker
ADD Gemfile ${HOME}/Gemfile
ADD Gemfile.lock ${HOME}/Gemfile.lock
RUN apk update && \
apk upgrade && \
apk add --update --no-cache ${RUNTIME_PACKAGES} && \
apk add --update --virtual build-dependencies --no-cache ${DEV_PACKAGES} && \
bundle install -j4 && \
apk del build-dependencies && \
rm -rf /usr/local/bundle/cache/* \
/usr/local/share/.cache/* \
/var/cache/* \
/tmp/* \
/usr/lib/mysqld* \
/usr/bin/mysql*
#Kopieren Sie die erforderlichen Dateien vom Host (Dateien auf Ihrem Computer) nach Docker
ADD . ${HOME}
#Öffnen Sie den Port 3000
EXPOSE 3000
#Befehl ausführen
CMD ["bundle", "exec", "rails", "s", "puma", "-b", "0.0.0.0", "-p", "3000", "-e", "development"]
★ Verwenden Sie die Anweisung ENV, um einen Wert in einer Umgebungsvariablen festzulegen
★ RUNTIME_PACKAGES ** Zum Ausführen von Programmen erforderliche Teile ** "Laufzeit" + "Paket" ist "Laufzeitpaket". Wenn die Laufzeit "ein Programm ausführt (zur Laufzeit)"
FROM node:12.5.0-alpine
ENV HOME="/app" \
LANG=C.UTF-8 \
TZ=Asia/Tokyo
ENV HOST 0.0.0.0
WORKDIR ${HOME}
RUN apk update && \
apk upgrade && \
npm install -g n && \
yarn install &&\
rm -rf /var/cache/apk/*
★ Der Zugriff von außerhalb des Containers ist zulässig, indem für die Umgebungsvariable HOST 0.0.0.0 angegeben wird.
Docker Compose ist eine Funktion, die das Erstellen und Ausführen eines Dienstes, der aus mehreren Containern besteht, automatisiert und die Verwaltung vereinfacht. Mit Docker Compose können Sie eine Compose-Datei vorbereiten und den Befehl einmal ausführen, um die Einstellungen aus dieser Datei zu lesen und alle Containerdienste zu starten.
docker-compose.yml
docker-compose.yml
version: "3"
services:
db:
image: mysql:5.7
env_file:
- ./backend/config/environments/db.env
restart: always
volumes:
- db-data:/var/lib/mysql:cached
back:
build: backend/
# rm -f tmp/pids/server.Nützlich, wenn Sie den Rails-Server nicht mit pid löschen können
command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
env_file:
- ./backend/config/environments/db.env
volumes:
- ./backend:/app:cached
depends_on:
- db
#Host-Computer-Port: Port in Docker
ports:
- 3000:3000
front:
build: frontend/
command: yarn run dev
volumes:
- ./frontend:/app:cached
ports:
#Host-Computer-Port: Port in Docker
- 8080:3000
depends_on:
- back
volumes:
public-data:
tmp-data:
log-data:
db-data:
** Interessant, weil es noch viele Dinge gibt, die ich nicht verstehe (fertig) **
Docker komponiert Kotobuki Hands-on
Ich habe einen API-Container mit Rails on Docker (alpine) erstellt
Als ich ab November den Job wechselte, war ich wirklich enttäuscht, dass ich AWS nicht einführen konnte, weil ich eine Zeit in mir hatte. Aber jetzt habe ich keine Zeit zum Beulen! Ich werde mein Bestes tun, um den Job zu wechseln.
Recommended Posts