MSA設定開始[3]EurekaとJenkinsの設定
🐋Dockerfileの作成 FROM openjdk:11-ea-27-jdk-slim
VOLUME /tmp
# jar파일 복사
COPY build/libs/jayeon-discovery-1.0.jar discovery.jar
ENTRYPOINT ["java","-jar","discovery.jar"]
次にgradle設定を変更してjarバージョンを1.0に保存します!
そして必ずbuildしてjarファイルを生成して続けなければなりません.そうしないとjarファイルが見つかりません.docker build -t ililil9482/discovery:1.0 .
コマンドで画像をマウント
正常に動作していることを確認したらgitにソースファイルをアップロードしjenkinsでパイプラインを作成します
🤵♂️ Jenkins設定 pipeline {
agent any
stages {
stage('Clone') {
steps {
git branch: 'main', credentialsId: '8e8302f1-6b98-4bfe-9981-2e027e49089b', url: 'https://github.com/juno-choi/jayeon-discovery.git'
}
}
stage('Clean') {
steps {
sh 'cd /var/jenkins_home/workspace/Eureka'
sh 'chmod +x gradlew'
sh './gradlew clean'
}
}
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('HUB Push') {
steps {
sh 'docker build -t ililil9482/discovery:1.0 .'
sh 'docker push ililil9482/discovery:1.0'
}
}
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'publisher',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /msa/eureka && sudo docker-compose down',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
stage('Up') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'publisher',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /msa/eureka && sudo docker-compose up -d',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
}
}
以前に作成したパイプラインを参照して、簡単に作成しました.
正常に進んでいることが確認できます.
今私のサーバーにアップロードしましょう.アップロードするときは환경변수
を修正するのを忘れないでください!
🐋docker-compose.ymlの作成 version: '3.7'
services:
eureka:
image: "ililil9482/discovery:1.0"
container_name: eureka
expose:
- 8761
environment:
- spring.cloud.config.uri=http://config:8888
networks:
default:
external:
name: msa
環境変数はconfig serverのuri設定を変更しました.localhostではなくコンテナ内部で呼び出されるuriに設定する必要があるためです.portを開くと、対応するuriリクエストが使えますが、すでにネットワークに接続されていますので、対応する設定で行いましょう.
ポートに直接接続するのではなく、コンテナ間の通信だけが必要になったため、portではなくexposeを使用しました.
docker-compose logs
コマンドを入力すると、docker-composeで実行されているcontainerのlogを表示できます.実際にはconfig:8888が正常にロードされ、サーバも正常に動作しています.
次に、実際のeureka画面を確認するためにドメインを要求します.
私はガビアドメイン名を使っています.ガビア設定で確認します.また、nginxの設定も変更する必要があります.
nginx設定の変更
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name eureka.jayeonapple.com;
location / {
proxy_pass http://eureka:8761;
}
}
server {
listen 80;
server_name jenkins.jayeonapple.com;
location / {
proxy_pass http://jenkins:8080;
}
}
server {
listen 80;
server_name config.jayeonapple.com;
location / {
proxy_pass http://config:8888;
}
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
}
nginx.conf
ファイルには、次のeureka設定が追加されています.
ガビアはインターネットを設置するのがどんなに簡単ですか!
以下に示すように、レコードが追加されています.
ユリカに近づくとユリカが見えます
configで見ることもできます.
ジェンキンスに近づくとジェンキンスが現れます
ここにシャベルの部分nginxがありますconfファイルを変更しdocker-composeでコンテナを再実行すると、不思議なことにジェンキンスにしか接続されていません.いくら設定を見ても間違ったところが見えず、不思議なことにジェンキンスは画面しか現れない.なぜなら、Dockerfileがイメージに再マウントされていないからです.画像のバージョンは、以前のバージョンでコンテナを実行し続けるため、以前はジェンキンスのみで開いていた設定が適用されていたため、ジェンキンスにのみ接続されていました...この問題に気づく方法はnginxコンテナに直接アクセスしてconfファイルを開くことで、私のファイルとは全く異なるファイルがあることに気づきました...だから知ったんだ.ううう
Reference
この問題について(MSA設定開始[3]EurekaとJenkinsの設定), 我々は、より多くの情報をここで見つけました
https://velog.io/@ililil9482/MSA-세팅-시작-3-Eureka-및-jenkins-설정
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
FROM openjdk:11-ea-27-jdk-slim
VOLUME /tmp
# jar파일 복사
COPY build/libs/jayeon-discovery-1.0.jar discovery.jar
ENTRYPOINT ["java","-jar","discovery.jar"]
docker build -t ililil9482/discovery:1.0 .
pipeline {
agent any
stages {
stage('Clone') {
steps {
git branch: 'main', credentialsId: '8e8302f1-6b98-4bfe-9981-2e027e49089b', url: 'https://github.com/juno-choi/jayeon-discovery.git'
}
}
stage('Clean') {
steps {
sh 'cd /var/jenkins_home/workspace/Eureka'
sh 'chmod +x gradlew'
sh './gradlew clean'
}
}
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('HUB Push') {
steps {
sh 'docker build -t ililil9482/discovery:1.0 .'
sh 'docker push ililil9482/discovery:1.0'
}
}
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'publisher',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /msa/eureka && sudo docker-compose down',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
stage('Up') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'publisher',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /msa/eureka && sudo docker-compose up -d',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
}
}
以前に作成したパイプラインを参照して、簡単に作成しました.正常に進んでいることが確認できます.
今私のサーバーにアップロードしましょう.アップロードするときは
환경변수
を修正するのを忘れないでください!🐋docker-compose.ymlの作成 version: '3.7'
services:
eureka:
image: "ililil9482/discovery:1.0"
container_name: eureka
expose:
- 8761
environment:
- spring.cloud.config.uri=http://config:8888
networks:
default:
external:
name: msa
環境変数はconfig serverのuri設定を変更しました.localhostではなくコンテナ内部で呼び出されるuriに設定する必要があるためです.portを開くと、対応するuriリクエストが使えますが、すでにネットワークに接続されていますので、対応する設定で行いましょう.
ポートに直接接続するのではなく、コンテナ間の通信だけが必要になったため、portではなくexposeを使用しました.
docker-compose logs
コマンドを入力すると、docker-composeで実行されているcontainerのlogを表示できます.実際にはconfig:8888が正常にロードされ、サーバも正常に動作しています.
次に、実際のeureka画面を確認するためにドメインを要求します.
私はガビアドメイン名を使っています.ガビア設定で確認します.また、nginxの設定も変更する必要があります.
nginx設定の変更
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name eureka.jayeonapple.com;
location / {
proxy_pass http://eureka:8761;
}
}
server {
listen 80;
server_name jenkins.jayeonapple.com;
location / {
proxy_pass http://jenkins:8080;
}
}
server {
listen 80;
server_name config.jayeonapple.com;
location / {
proxy_pass http://config:8888;
}
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
}
nginx.conf
ファイルには、次のeureka設定が追加されています.
ガビアはインターネットを設置するのがどんなに簡単ですか!
以下に示すように、レコードが追加されています.
ユリカに近づくとユリカが見えます
configで見ることもできます.
ジェンキンスに近づくとジェンキンスが現れます
ここにシャベルの部分nginxがありますconfファイルを変更しdocker-composeでコンテナを再実行すると、不思議なことにジェンキンスにしか接続されていません.いくら設定を見ても間違ったところが見えず、不思議なことにジェンキンスは画面しか現れない.なぜなら、Dockerfileがイメージに再マウントされていないからです.画像のバージョンは、以前のバージョンでコンテナを実行し続けるため、以前はジェンキンスのみで開いていた設定が適用されていたため、ジェンキンスにのみ接続されていました...この問題に気づく方法はnginxコンテナに直接アクセスしてconfファイルを開くことで、私のファイルとは全く異なるファイルがあることに気づきました...だから知ったんだ.ううう
Reference
この問題について(MSA設定開始[3]EurekaとJenkinsの設定), 我々は、より多くの情報をここで見つけました
https://velog.io/@ililil9482/MSA-세팅-시작-3-Eureka-및-jenkins-설정
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
version: '3.7'
services:
eureka:
image: "ililil9482/discovery:1.0"
container_name: eureka
expose:
- 8761
environment:
- spring.cloud.config.uri=http://config:8888
networks:
default:
external:
name: msa
docker-compose logs
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name eureka.jayeonapple.com;
location / {
proxy_pass http://eureka:8761;
}
}
server {
listen 80;
server_name jenkins.jayeonapple.com;
location / {
proxy_pass http://jenkins:8080;
}
}
server {
listen 80;
server_name config.jayeonapple.com;
location / {
proxy_pass http://config:8888;
}
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
}
Reference
この問題について(MSA設定開始[3]EurekaとJenkinsの設定), 我々は、より多くの情報をここで見つけました https://velog.io/@ililil9482/MSA-세팅-시작-3-Eureka-및-jenkins-설정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol