본문 바로가기

MSA

도커 III - git 리포지토리 생성

* wsl

 

# ssh 서비스 시작

sudo apt install openssh-server 
sudo service ssh start

 

# repos 폴더 만든 후 이동

mkdir ~/repos && cd ~/repos

 

# git repository만 생성

git init --bare .

* git bash

 

# 깃을 관리할 폴더에서 .git 파일 만들기

ansgy@BOOK-2PPHMOTAAR MINGW64 /c/work_msa
$ git init
Initialized empty Git repository in C:/work_msa/.git/

 

# 깃 원격 연결

ansgy@BOOK-2PPHMOTAAR MINGW64 /c/work_msa (master)
$ git remote add origin ssh://hj@172.24.202.154://home/hj/repos

$ git remote add origin ssh://[계정명]@[서버 IP]:/home/[계정명]/[저장된 공간]

-> git remote add origin ssh://hj@172.24.202.154:/home/hj/repos

 

# git을 관리하는 폴더에 있는 내용들을 다 add

ansgy@BOOK-2PPHMOTAAR MINGW64 /c/work_msa (master)
$ git add .
warning: in the working copy of 'stock-service/.gitignore', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'stock-service/build.gradle', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'stock-service/gradle/wrapper/gradle-wrapper.properties', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'stock-service/gradlew', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'stock-service/settings.gradle', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'stock-service/src/main/java/com/lhs/stockservice/StockServiceApplication.java', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'stock-service/src/main/resources/application.properties', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'stock-service/src/test/java/com/lhs/stockservice/StockServiceApplicationTests.java', LF will be replaced by CRLF the next time Git touches it

 

# git commit

ansgy@BOOK-2PPHMOTAAR MINGW64 /c/work_msa (master)
$ git commit -m "stock-service"
[master (root-commit) 918f2b4] stock-service
 19 files changed, 772 insertions(+)
 create mode 100644 stock-service/.gitignore
 create mode 100644 stock-service/build.gradle
 create mode 100644 stock-service/gradle/wrapper/gradle-wrapper.jar
 create mode 100644 stock-service/gradle/wrapper/gradle-wrapper.properties
 create mode 100644 stock-service/gradlew
 create mode 100644 stock-service/gradlew.bat
 create mode 100644 stock-service/settings.gradle
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/StockServiceApplication.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/controller/StockController.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/controller/dto/MasterResponseDto.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/controller/dto/RequestDto.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/controller/dto/StockDto.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/domain/entity/IdDatePk.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/domain/entity/Master.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/domain/entity/Stock.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/domain/repository/StockRepository.java
 create mode 100644 stock-service/src/main/java/com/lhs/stockservice/service/StockService.java
 create mode 100644 stock-service/src/main/resources/application.properties
 create mode 100644 stock-service/src/test/java/com/lhs/stockservice/StockServiceApplicationTests.java

 

# git push

ansgy@BOOK-2PPHMOTAAR MINGW64 /c/work_msa (master)
$ git push origin master
Enumerating objects: 42, done.
Counting objects: 100% (42/42), done.
Delta compression using up to 16 threads
Compressing objects: 100% (30/30), done.
Writing objects: 100% (42/42), 67.14 KiB | 2.24 MiB/s, done.
Total 42 (delta 1), reused 0 (delta 0), pack-reused 0
To ssh://172.24.202.154://home/hj/repos
 * [new branch]      master -> master

 

# 공개키 복사

ssh-keygen -t rsa
ansgy@BOOK-2PPHMOTAAR MINGW64 /c/work_msa (master)
$ cd ~/.ssh

ansgy@BOOK-2PPHMOTAAR MINGW64 ~/.ssh
$ ls
id_rsa  id_rsa.pub  known_hosts  known_hosts.old

ansgy@BOOK-2PPHMOTAAR MINGW64 ~/.ssh
$ dir
id_rsa  id_rsa.pub  known_hosts  known_hosts.old

ansgy@BOOK-2PPHMOTAAR MINGW64 ~/.ssh
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC660QT6Td5kq11KBtCkjbtJ31NzWssMsvfy1yKNf6fB9zKrlgFhW4W2DZjth71fWiUZ74BCrK24RR4q7MOnF8591F6MAWkqtqdD/MCi4rozuyojrOxggyC8e0NQste5lxW4UN9Ny+pqUw3PULho5IrkZfj8eRb8ZgnPLIkBL+ymMZ8vc75ZUb5wy9+NbsXxF/0o4ru0OIx2kSwSnkL8Iu1GZs3fvn2j0kcWDliQb5emJPYqgFphU+Aj0laT46DE10jV0Qt1i8wUK703IGKY+/eBzqMr1SPJcivTKoiwiqYTIzIe5C7i3F4rzBSNNwLZ8EKacJnqbkl3lqA8Z/AwQoC+Hl/H7bWoR85BTT3s0bs0re3lNMPv0tOQMyzMolo7PZHLqxLnm3fLC0rZaQ8mKCYEc1dm6cf7J24QNqbqOcyRDGocw9WgdY3rktlAby4lpnOZKDtei+1XRp6mYtzwFkhWkR2OV8J69bNmH018a69CGIX2SsKMUnE4fbz6bLHbB8= ansgy@BOOK-2PPHMOTAAR

* wsl

hj@BOOK-2PPHMOTAAR:~$ cd ~/.ssh
hj@BOOK-2PPHMOTAAR:~/.ssh$ vim authorized_keys

-> GitBash에서 cat id_rsa.pub을 실행했을 때 나온 키를 추가해준 후 저장


* wsl

 

# temp5 폴더 생성 및 이동

mkdir temp5/
cd temp5/

 

# Dockerfile 작성

hj@BOOK-2PPHMOTAAR:~/temp5$ vim Dockerfile

 

-> Dockerfile 내부(Vim), gradle 버전

FROM openjdk:11
LABEL maintainer="encore"

# install required packages
RUN apt-get update \
  && apt-get install -y --no-install-recommends git \
  && apt-get install -y --no-install-recommends ssh \
  && rm -rf /var/lib/apt/lists/

# make bitbucket as a known host
RUN mkdir -p -m 0600 /root/.ssh
ADD known_hosts /root/.ssh/known_hosts

# ADD SSH Key into Docker container
# local의 .ssh/id_rsa 파일을 Dockerfile과 동일한 디렉토리에 복사해놓자.
ADD id_rsa /root/.ssh/id_rsa
RUN git clone ssh://hj@172.24.202.154:/home/hj/repos/

WORKDIR repos/stock-service
RUN chmod 700 ./gradlew
RUN ./gradlew clean build -x test
RUN mv build/libs/stock-service-0.0.1-SNAPSHOT.jar /opt/app-in-image.jar
WORKDIR /opt
ENTRYPOINT [ "java", "-jar", "app-in-image.jar" ]

 

# 파일 복사

cp ~/.ssh/known_hosts ./

cp ~/.ssh/id_rsa ./

 

#  ssh localhost( 암호키 복사 제대로 잘 됐는지 확인하기 위해 실행)

ssh localhost

 

hj@BOOK-2PPHMOTAAR:~/.ssh$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

id_rsa.pub(공개키)를 읽을 수 있도록 authorized_keys에 넣어줌(vim autorized_keys를 통해 키를 복붙한 것과 같은 것)

 

#  이미지 빌드

hj@BOOK-2PPHMOTAAR:~/temp5$ docker build -t restapi:1.0 .
[+] Building 77.1s (16/16) FINISHED                                         docker:default
 => [internal] load build definition from Dockerfile                                  0.0s
 => => transferring dockerfile: 811B                                                  0.0s
 => [internal] load .dockerignore                                                     0.0s
 => => transferring context: 2B                                                       0.0s
 => [internal] load metadata for docker.io/library/openjdk:11                         1.2s
 => [ 1/11] FROM docker.io/library/openjdk:11@sha256:99bac5bf83633e3c7399aed725c8415  0.0s
 => [internal] load build context                                                     0.0s
 => => transferring context: 59B                                                      0.0s
 => CACHED [ 2/11] RUN apt-get update   && apt-get install -y --no-install-recommend  0.0s
 => CACHED [ 3/11] RUN mkdir -p -m 0600 /root/.ssh                                    0.0s
 => CACHED [ 4/11] ADD known_hosts /root/.ssh/known_hosts                             0.0s
 => CACHED [ 5/11] ADD id_rsa /root/.ssh/id_rsa                                       0.0s
 => [ 6/11] RUN git clone ssh://hj@172.24.202.154:/home/hj/repos/                     0.5s
 => [ 7/11] WORKDIR repos/stock-service                                               0.0s
 => [ 8/11] RUN chmod 700 ./gradlew                                                   0.6s
 => [ 9/11] RUN ./gradlew clean build -x test                                        72.7s
 => [10/11] RUN mv build/libs/stock-service-0.0.1-SNAPSHOT.jar /opt/app-in-image.jar  0.5s
 => [11/11] WORKDIR /opt                                                              0.0s
 => exporting to image                                                                1.5s
 => => exporting layers                                                               1.5s
 => => writing image sha256:9b79dffc5cbfbcae211b02c73cdb06502a2d448bf1a1da38659f9187  0.0s
 => => naming to docker.io/library/restapi:1.0                                        0.0s

'MSA' 카테고리의 다른 글

도커 VI - Dockerfile 명령어  (0) 2023.10.13
도커 V  (0) 2023.10.11
도커 IV  (0) 2023.10.10
도커 II  (0) 2023.10.02
도커 I  (0) 2023.10.01