STEP 1. VM 환경 세팅
- Docker 설치
### STEP1. old version 도커 제거$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine### STEP2. Set up Repository$ sudo yum install -y yum-utils$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo### STEP3. Install Docker Engine && Start Docker$ yum update -y && yum install -y docker-ce docker-ce-cli containerd.io$ systemctl restart docker && systemctl enable --now docker
- Docker 상태 및 버전 확인
$ sudo systemctl status docker$ sudo docker version
- Pull Image && Run Image (Open JDK 8)
$ sudo docker pull registry.access.redhat.com/ubi8/openjdk-8:1.14-3$ sudo docker run -it -d --privileged -v /etc/localtime:/etc/localtime:ro -e TZ=Asia/Seoul -p 55432:55432 --name weasyM_RHEL8 registry.access.redhat.com/ubi8/openjdk-8:1.14-3 /bin/bash>> -v /etc/localtime:/etc/localtime:ro -e TZ=Asia/Seoul (컨테이너 내부 서버시간 UTC+9 로 설정)>> -p 포트포워딩 설정### container ID 확인 후 root 계정으로 접속 ###$ sudo docker ps -al$ sudo docker exec -it --user root {container_ID} /bin/bash### OS 확인 (RHEL 8.6) ###$ grep . /etc/*-release
STEP 2. 컨테이너 내부 환경 설정
- 편의를 위한 YUM 설치 및 저장소 경로 변경 & 저장소 변경 (컨테이너 내부)
$ microdnf install -y yum yum-utils$ microdnf upgrade --refresh -y## 명령을 (ps, netstat, vi) 위한 패키지들 설치 ##$ yum install -y procps net-tools vi## Mirrorlist 에러 시 (CentOS8)$ sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*$ sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
- 컨테이너 내부로 파일 전송
- 방법 1. VM으로 FTP 전송 & weasyM 설치 tar파일 컨테이너 내부로 전송
- 방법 2. 편의 상 설치 된 weasyM을 NFS 공유폴더 설정 & 전송
- https://meongj-devlog.tistory.com/96 ( 리눅스 NFS - 공유폴더 설정 참고 )
## 컨테이너 환경에서 EXIT ##$ exit## Docker cp 명령을 사용하여 컨테이너 내부로 파일 전송 ##$ docker cp {weasyM 폴더 절대경로} {컨테이너ID}:/{이동시킬 Directory}## NFS 사용 시 ##$ docker cp {NFS Server IP}:/{directory} {컨테이너ID}:/{Directory}
STEP 3. 컨테이너 내부 환경에 weasyM 설치
- weasyM OS 설정 - 컨테이너 내부 OS 환경 설정
$ docker exec -it --user root {컨테이너 ID} /bin/bash$ vi /etc/security/limits.conf-INSERT-...* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072:wq$ vi /etc/sysctl.conf-INSERT-...fs.file-max = 6815744kernel.sem = 250 32000 100 128kernel.shmmni = 4096kernel.shmall = 1073741824kernel.shmmax = 4398046511104kernel.panic_on_oops = 1net.core.rmem_default = 104857600net.core.rmem_max = 33554432net.core.wmem_default = 104857600net.core.wmem_max = 33554432net.ipv4.conf.all.rp_filter = 2net.ipv4.conf.default.rp_filter = 2fs.aio-max-nr = 1048576net.ipv4.ip_local_port_range = 9000 65500net.ipv4.conf.all.arp_notify = 1net.ipv4.tcp_rmem = 4096 8388608 33554432net.ipv4.tcp_wmem = 4096 8388608 33554432net.ipv4.tcp_window_scaling = 1net.ipv4.tcp_moderate_rcvbuf = 1net.ipv4.tcp_sack = 1net.ipv4.tcp_max_syn_backlog = 30000:wq$ sysctl -p
- 필수 패키지 설치
$ yum install -y libtirpc$ yum install -y python3$ yum install -y libicu$ yum install -y libxslt$ yum install -y glibc-all-langpacks
- PostgreSQL 14 설치
- https://www.postgresql.org/download/linux/redhat/ (공식문서 참고 - RHEL 8)
$ yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm$ yum install -y postgresql14 \postgresql14-server \postgresql14-contrib \postgresql14-docs \postgresql14-plperl \postgresql14-plpython3## 패키지 설치 확인 ##$ rpm -qa | grep postgresql
- PostgreSQL 디렉터리 및 환경 설정 & 시작
$ mkdir /data$ mkdir /data/pgsql$ mkdir /data/pgsql/14$ mkdir /data/pgsql/14/data$ chown -R postgres:postgres /data
$ su postgres -bash-4.4$ vi ~/.bash_profile## bash_profile 수정 ###PGDATA=/var/lib/pgsql/14/dataexport PGDATA=/data/pgsql/14/dataexport PATH=/usr/pgsql-14/bin:$PATHexport PS1="[\u@\h \w]\\$ "bash-4.4$ source ~/.bash_profile$ initdb....~pg_ctl -D /data/pgsql/14/data -l logfile start...$ cd /data/pgsql/14/data
## PostgreSQL 접속 환경 설정 (pg_hba.conf, postgresql.conf)$ vi pg_hba.conf-INSERT-... 중략 ...# IPv4 local connections:host all all 0.0.0.0/0 trust:wq$ vi postgresql.conf-INSERT-... 중략 ...# - Connection Settings -listen_addresses = '*' # what IP address(es) to listen on;# comma-separated list of addresses;# defaults to 'localhost'; use '*' for all# (change requires restart)#port = 5432:wq$ pg_ctl -D /data/pgsql/14/data -l logfile start$ pg_ctl -D /data/pgsql/14/data -m immediate stop
- Timezone 수정
$ microdnf install -y tzdata$ export TZ='Asia/Seoul'$ date
- 이후 컨테이너 환경에서 weasyM 설치 순서는 동일 (가이드 참고)