Créez le Dockerfile suivant et démarrez-le à partir de docker-compose.
La version est également répertoriée. Ce n'est pas que vous ne pouvez pas le faire sans cette version.
Seuls les éléments requis cette fois sont répertoriés.
Nginx
docker/docker-nginx/Dockerfile
FROM nginx:1.15.0
ADD nginx.conf /etc/nginx/conf.d/nginx.conf
Ce n'est pas un Dockerfile, mais il est utilisé dans le script du Dockerfile.
docker/docker-nginx/nginx.conf
server {
listen 8080;
charset utf-8;
access_log off;
location / {
proxy_pass http://app:8090;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
access_log off;
expires 30d;
alias /app/static;
}
}
Je ne sais pas si c'est le meilleur. Il n'y a pas de HTTPS et vous devez ajouter ce dont votre application a besoin ici.
L'application de l'application: 8090 est le conteneur Spring Boot de docker-compose.yml décrit plus tard.
Spring Boot
docker/docker-springboot/Dockerfile
FROM openjdk:10.0.1-jdk
RUN git clone https://github.com/xxxx/repo_name.git
WORKDIR ./repo_name
RUN ./gradlew --full-stacktrace -q build
CMD ./gradlew bootRun
docker/docker-springboot-local/Dockerfile
FROM openjdk:10.0.1-jdk
Étant donné que les paramètres nécessaires sont spécifiés à partir de docker-compose.yml, le résultat est uniquement FROM.
docker-compose.yml
version: '3'
services:
nginx:
container_name: container_nginx
build: docker/docker-nginx
restart: always
ports:
- 80:8080
hostname: container_nginx_hostname
links:
- app
app:
container_name: container_springboot
restart: always
build: docker/docker-springboot
expose:
- 8090
command: ./gradlew bootRun
hostname: container_springboot_hostname
#Utilisé lors d'un lancement rapide localement
# app:
# container_name: container_springboot-local
# restart: always
# build: docker/docker-springboot-local
# expose:
# - 8090
# command: ./gradlew bootRun
# hostname: container_springboot-local_hostname
# working_dir: /container_springboot
# volumes:
# - ./:/container_springboot
Si vous le démarrez avec docker-comose, vous pouvez exécuter l'API sur le chemin localhost / application.
Comme il a été écrit grossièrement pour ne pas oublier le contenu de Dockerfile et docker-compose.yml, il n'y a pas d'explication détaillée, mais j'ai pu accepter la requête HTTP avec Nginx et l'envoyer à Spring Boot.
Recommended Posts