본문 바로가기
WEB/Infra

프로젝트 인프라 구축 (DevOps)

by 최새벽 2024. 7. 22.

날짜가 지나니  hyperv가 release되어... ip가 바뀌어 생기는 문제가 있었다

해결 하는 법

가상머신 콘솔에 로그인 후
다음 코드 입력

nmcli con up eth0

지난시간 복습

  1. pod 반들기
 podman pod create --publish 5000:5000 --publish 80:3000 --name workshop-app

5000:5000 : 레지스트리 포트
외부에서 인프라에서 받아보는 포트 위치
gogs는 3000번 포트를 사용

  1. pod에 gogs와 docker-registry를 넣어주기
    -gogs: 3000/TCP
    -docker0registry: 5000/TCP

인프라 사용자는 외부에서 접근
access 포트포워드

아직 app을 실행시키지 않았으므로 list로 조회안됨

podman run -d --name docker-registry --pod workshop-app docker.io/library/registry:latest
podman pod ls

위 코드 실행하면 infra id 얻을 수 있음 해당 정보로 port 정보 조회하면 아래 그림과 같이 나옴

포트포워딩을 할 수 있게 해주는 것을 양쪽 뱡향으로 묶어 NAT이라 지칭하고 라우터의 역할을 해줌

통신은 한방향이 아니라 양방향으로 가능

podman run -d --name git-server --pod workshop-app gogs
  1. 중간 확인
    http://172.31.242.139:5000/ : 올린게 없어서 아무것도 안뜸
    http://172.31.242.139/

인위적인 확인

podman pull quay.io/redhattraining/wordpress:5.3.0
podman tagquay.io/redhattraining/wordpress:5.3.0 localhost:5000/tang/wordpress:v5
podman push localhost:5000/tang/wordpress:v5

skopeo copy 가 위의 과정 한번에 해줌

skopeo copy docker://quay.io/redhattraining/wordpress:5.3.0 docker://localhost:5000/minmeanseo/
wordpress:v5
skopeo copy docker://docker.io/library/registry:latest docker://localhost:5000/minmeanseo/regis
try:v1

podman volume

  • 컨테이너에서 저장되는 데이터는 호스트에서 공유하고 있으며, 임시저장이다
podman run -d -it --name test-centos centos:stream9 /bin/bash ### i: interactive, t: tty
podman exec -it test-centos bash

podman volume ls
# podman exec -it test-centos bash 한 bash에서
touch hack.txt
cat hack.txt

ss -antp 

 

podman run -d --rm --name test-gogs -v gogs-backup:/backup -v gogs:/data gogs

 

 

 

`podman image inspect gogs`

 

 

/var/lib/containers/storage/volumes/gogs-backup/_data 조회 가능

 

 

 

[제대로 구성하기 ]

podman stop test-gogs ## 일단 없애고

podman run -d --rm --name test-gogs -p 80:3000 -v gogs-backup:/backup -v gogs:/data gogs ### 포트 번호 부여

 

gogs 화면 접속해서 

도메인, 어플리케이션 id에 ip주소 입력해주고 http://172.31.242.139/

저장소 SQLite로 설정

계정 생성 후 

새 마이그레이션 선택, github clone

 

 

 

데이터 영구 저장이 목적 << 뭐가?

 

 

oracle java는 설치하면 안됨 -> 실무에서 벌금 

dnf search openjdk 

 

 

```bash

dnf search openjdk

 dnf install maven-openjdk11

```

 

 

maven : 이미지 소스코드 있으면 dependency맞춰주고 컴파일 해주고 테스트 해주고 다시 패키징해서 배포해주는데

메이븐이 자동화 도구 automation 

젠켄스로 원래 컴파일 테스트 따로햇는데

지금은 메이븐이나 그레이들로 컴파일부터 검증까지 다 자동화 

 

 

```bash

git clone https://github.com/tangt64/spring-petclinic
cd spring-petclinic
mvnw package
java -jar target/*.jar

 

 

포트를 자꾸... 9000으로만 줘서 오류가 낫다..

9000:8080해야 9천번으로 들어올때 8080으로 갈수잇게 해줌..

podman run -d --rm --name pet-clinic-v1 -p9000localhost:5000/tang/pet-clinic:v1

->

podman run -d --rm --name pet-clinic-v1 -p9000:8080 localhost:5000/tang/pet-clinic:v1

 

 

1. dockerfile : 도커 지원 이미지 빌드 명령어 파일

2. containerfile: 표준 OCI도구에서 지원하는 이미지 빌드 명령어 파일

 

 

```bash

git remote add origin http://172.31.242.139/gogs/php-ip.git

git add .

 git commit -m "commit"

 git push origin master

##  git push --set-upstream origin master

## 잘못됏다면 git remote remove origin

```

podman run -it --rm --name build-image quay.io/centos/centos:stream9 /bin/bash하고 

컨테이너 내부에서 

git 설치하고 git clone

클론 안되면 방화벽 이슈

 

 

podman container inspect test-gogs | grep -i ipaddress

 

 

 podman run -it --privileged --rm --name build-image quay.io/centos/centos:stream9 /bin/bash 

이게 root랑 거의 비슷한 기능을 할 수 잇게한다고함 

 

 

dnf install buildah git -y

git clone http://10.88.0.5:3000/gogs/php-ip.git ## 포트 바뀔 수잇음

 

 

젠킨스 레거시 시스템. 

컨테이너에 돌릴수잇음

 

'WEB > Infra' 카테고리의 다른 글

웹 서버 배포하기 01 : ubuntu 설치  (0) 2025.01.16
podman (Devops)  (0) 2024.10.15
쿠버네틱스 (Devops)  (0) 2024.10.15
가상머신 ip고정(DevOps)  (1) 2024.07.22