Login Serviceの適用
📘DBの作成
DBの作成で行った内容では、docker-compose.ymlでnetworks:
default:
external:
name: msa
コンテンツのみを追加して再生成し、schemaとtableの順に生成します.CREATE TABLE `users` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`USER_ID` varchar(10) NOT NULL,
`NAME` varchar(20) NOT NULL,
`PW` varchar(150) NOT NULL,
`ADDRESS1` varchar(10) DEFAULT NULL,
`ADDRESS2` varchar(50) DEFAULT NULL,
`ADDRESS3` varchar(50) DEFAULT NULL,
`TEL` varchar(20) DEFAULT NULL,
`CREATED_AT` varchar(45) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `USER_ID_UNIQUE` (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
🔨構成の変更 eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eureka:8761/eureka
token:
expiration_time: 86400000 #ms단위
secret: 비밀번호 키
spring:
jpa:
hibernate:
ddl-auto: none
show-sql: true
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://maria:3306/스키마
username: db 아이디
password: db 비밀번호
設定値を次のように変更します.
さらに、profileもlogin-prod
で実行できるようにファイルを生成した.
🐋Dockerfileの作成 FROM openjdk:11-ea-27-jdk-slim
VOLUME /tmp
# jar파일 복사
COPY build/libs/login-service-1.0.jar login.jar
ENTRYPOINT ["java","-jar","login.jar"]
🐋docker-compose.ymlの作成
環境変数で指定する部分は、Config ServerとProfile名です.version: '3.7'
services:
login:
image: "ililil9482/login:1.0"
container_name: login
environment:
- spring.cloud.config.uri=http://config:8888
- spring.cloud.config.profile=prod
networks:
default:
external:
name: msa
ここで重要なのは、portまたはexposeを単独でコンテナ間に接続する必要がないことです.その理由は、Eurekaにサーバが登録されているため、Eurekaはゲートウェイへのアクセスを要求したときにサーバに接続できるため、ポートやexposeで単独で接続する必要はなく、サービス名で接続するだけであることを理解してスキップしましょう.
🤵♂️jenkinsパイプラインの作成 pipeline {
agent any
stages {
stage('Clone') {
steps {
git branch: 'main', credentialsId: '8e8302f1-6b98-4bfe-9981-2e027e49089b', url: 'https://github.com/juno-choi/jayeon-login.git'
}
}
stage('Clean') {
steps {
sh 'cd /var/jenkins_home/workspace/login'
sh 'chmod +x gradlew'
sh './gradlew clean'
}
}
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('HUB Push') {
steps {
sh 'docker build -t ililil9482/login:1.0 .'
sh 'docker push ililil9482/login:1.0'
}
}
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'publisher',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /msa/login && 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/login && 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)
])
}
}
}
}
通常のログイン-サービスが登録されています.今からお願いします!
👊テスト
登録
postmanは指定したurlに登録し、正常に動作するように要求します.
その後dbも我々の考えた論理に従って正常なログイン処理を行った.
ログイン
正常にログインし、トークンを発行することで、返される論理を確認できます.
Kafkaは現在不要であるため,サービス自体はdbにinsertを送信するが,orderサービスを開発するとともに,Kafkaに変更する操作が必要である.
勘定科目の適用時にうろうろする場所
maria dbのデータはコンテナを上下に移動してもそのままであるが,データが失われる現象がある.もう1つのmariadbは、データが/var/lib/mysql
の下に格納されていると言っていたので、私もそうしました.ただし、データはボリュームフォルダに保存されていません.だから調べてみました.
私のデータベースがどうなっているのかまだ分かりませんが、/config/databases
下に調整されているので、相応の経路でボリュームをつかんで運行しています.コンテナが降りてから上がっても、正常に運行できます!
Reference
この問題について(Login Serviceの適用), 我々は、より多くの情報をここで見つけました
https://velog.io/@ililil9482/Login-Service-적용하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
networks:
default:
external:
name: msa
CREATE TABLE `users` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`USER_ID` varchar(10) NOT NULL,
`NAME` varchar(20) NOT NULL,
`PW` varchar(150) NOT NULL,
`ADDRESS1` varchar(10) DEFAULT NULL,
`ADDRESS2` varchar(50) DEFAULT NULL,
`ADDRESS3` varchar(50) DEFAULT NULL,
`TEL` varchar(20) DEFAULT NULL,
`CREATED_AT` varchar(45) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `USER_ID_UNIQUE` (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eureka:8761/eureka
token:
expiration_time: 86400000 #ms단위
secret: 비밀번호 키
spring:
jpa:
hibernate:
ddl-auto: none
show-sql: true
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://maria:3306/스키마
username: db 아이디
password: db 비밀번호
設定値を次のように変更します.さらに、profileも
login-prod
で実行できるようにファイルを生成した.🐋Dockerfileの作成 FROM openjdk:11-ea-27-jdk-slim
VOLUME /tmp
# jar파일 복사
COPY build/libs/login-service-1.0.jar login.jar
ENTRYPOINT ["java","-jar","login.jar"]
🐋docker-compose.ymlの作成
環境変数で指定する部分は、Config ServerとProfile名です.version: '3.7'
services:
login:
image: "ililil9482/login:1.0"
container_name: login
environment:
- spring.cloud.config.uri=http://config:8888
- spring.cloud.config.profile=prod
networks:
default:
external:
name: msa
ここで重要なのは、portまたはexposeを単独でコンテナ間に接続する必要がないことです.その理由は、Eurekaにサーバが登録されているため、Eurekaはゲートウェイへのアクセスを要求したときにサーバに接続できるため、ポートやexposeで単独で接続する必要はなく、サービス名で接続するだけであることを理解してスキップしましょう.
🤵♂️jenkinsパイプラインの作成 pipeline {
agent any
stages {
stage('Clone') {
steps {
git branch: 'main', credentialsId: '8e8302f1-6b98-4bfe-9981-2e027e49089b', url: 'https://github.com/juno-choi/jayeon-login.git'
}
}
stage('Clean') {
steps {
sh 'cd /var/jenkins_home/workspace/login'
sh 'chmod +x gradlew'
sh './gradlew clean'
}
}
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('HUB Push') {
steps {
sh 'docker build -t ililil9482/login:1.0 .'
sh 'docker push ililil9482/login:1.0'
}
}
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'publisher',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /msa/login && 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/login && 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)
])
}
}
}
}
通常のログイン-サービスが登録されています.今からお願いします!
👊テスト
登録
postmanは指定したurlに登録し、正常に動作するように要求します.
その後dbも我々の考えた論理に従って正常なログイン処理を行った.
ログイン
正常にログインし、トークンを発行することで、返される論理を確認できます.
Kafkaは現在不要であるため,サービス自体はdbにinsertを送信するが,orderサービスを開発するとともに,Kafkaに変更する操作が必要である.
勘定科目の適用時にうろうろする場所
maria dbのデータはコンテナを上下に移動してもそのままであるが,データが失われる現象がある.もう1つのmariadbは、データが/var/lib/mysql
の下に格納されていると言っていたので、私もそうしました.ただし、データはボリュームフォルダに保存されていません.だから調べてみました.
私のデータベースがどうなっているのかまだ分かりませんが、/config/databases
下に調整されているので、相応の経路でボリュームをつかんで運行しています.コンテナが降りてから上がっても、正常に運行できます!
Reference
この問題について(Login Serviceの適用), 我々は、より多くの情報をここで見つけました
https://velog.io/@ililil9482/Login-Service-적용하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
FROM openjdk:11-ea-27-jdk-slim
VOLUME /tmp
# jar파일 복사
COPY build/libs/login-service-1.0.jar login.jar
ENTRYPOINT ["java","-jar","login.jar"]
環境変数で指定する部分は、Config ServerとProfile名です.
version: '3.7'
services:
login:
image: "ililil9482/login:1.0"
container_name: login
environment:
- spring.cloud.config.uri=http://config:8888
- spring.cloud.config.profile=prod
networks:
default:
external:
name: msa
ここで重要なのは、portまたはexposeを単独でコンテナ間に接続する必要がないことです.その理由は、Eurekaにサーバが登録されているため、Eurekaはゲートウェイへのアクセスを要求したときにサーバに接続できるため、ポートやexposeで単独で接続する必要はなく、サービス名で接続するだけであることを理解してスキップしましょう.🤵♂️jenkinsパイプラインの作成 pipeline {
agent any
stages {
stage('Clone') {
steps {
git branch: 'main', credentialsId: '8e8302f1-6b98-4bfe-9981-2e027e49089b', url: 'https://github.com/juno-choi/jayeon-login.git'
}
}
stage('Clean') {
steps {
sh 'cd /var/jenkins_home/workspace/login'
sh 'chmod +x gradlew'
sh './gradlew clean'
}
}
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('HUB Push') {
steps {
sh 'docker build -t ililil9482/login:1.0 .'
sh 'docker push ililil9482/login:1.0'
}
}
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'publisher',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /msa/login && 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/login && 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)
])
}
}
}
}
通常のログイン-サービスが登録されています.今からお願いします!
👊テスト
登録
postmanは指定したurlに登録し、正常に動作するように要求します.
その後dbも我々の考えた論理に従って正常なログイン処理を行った.
ログイン
正常にログインし、トークンを発行することで、返される論理を確認できます.
Kafkaは現在不要であるため,サービス自体はdbにinsertを送信するが,orderサービスを開発するとともに,Kafkaに変更する操作が必要である.
勘定科目の適用時にうろうろする場所
maria dbのデータはコンテナを上下に移動してもそのままであるが,データが失われる現象がある.もう1つのmariadbは、データが/var/lib/mysql
の下に格納されていると言っていたので、私もそうしました.ただし、データはボリュームフォルダに保存されていません.だから調べてみました.
私のデータベースがどうなっているのかまだ分かりませんが、/config/databases
下に調整されているので、相応の経路でボリュームをつかんで運行しています.コンテナが降りてから上がっても、正常に運行できます!
Reference
この問題について(Login Serviceの適用), 我々は、より多くの情報をここで見つけました
https://velog.io/@ililil9482/Login-Service-적용하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
pipeline {
agent any
stages {
stage('Clone') {
steps {
git branch: 'main', credentialsId: '8e8302f1-6b98-4bfe-9981-2e027e49089b', url: 'https://github.com/juno-choi/jayeon-login.git'
}
}
stage('Clean') {
steps {
sh 'cd /var/jenkins_home/workspace/login'
sh 'chmod +x gradlew'
sh './gradlew clean'
}
}
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('HUB Push') {
steps {
sh 'docker build -t ililil9482/login:1.0 .'
sh 'docker push ililil9482/login:1.0'
}
}
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'publisher',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /msa/login && 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/login && 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)
])
}
}
}
}
登録
postmanは指定したurlに登録し、正常に動作するように要求します.
その後dbも我々の考えた論理に従って正常なログイン処理を行った.
ログイン
正常にログインし、トークンを発行することで、返される論理を確認できます.
Kafkaは現在不要であるため,サービス自体はdbにinsertを送信するが,orderサービスを開発するとともに,Kafkaに変更する操作が必要である.
勘定科目の適用時にうろうろする場所
maria dbのデータはコンテナを上下に移動してもそのままであるが,データが失われる現象がある.もう1つのmariadbは、データが/var/lib/mysql
の下に格納されていると言っていたので、私もそうしました.ただし、データはボリュームフォルダに保存されていません.だから調べてみました.
私のデータベースがどうなっているのかまだ分かりませんが、/config/databases
下に調整されているので、相応の経路でボリュームをつかんで運行しています.コンテナが降りてから上がっても、正常に運行できます!
Reference
この問題について(Login Serviceの適用), 我々は、より多くの情報をここで見つけました
https://velog.io/@ililil9482/Login-Service-적용하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(Login Serviceの適用), 我々は、より多くの情報をここで見つけました https://velog.io/@ililil9482/Login-Service-적용하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol