๐ค ํด๋ผ์ฐ๋ ์๋ฒ์ ๋ฐฐํฌ
๊ฐ์
์ด์ ํ๋ก์ ํธ๋ค์ ๋ฐฐํฌํ๋ฉฐ ๊ณผ์ ์ ๊ธฐ๋กํ๋ ค ํ๋ค.
๐Spring Project (์ผํ๋ชฐ)
WAR ํ์ผ๋ก ๋น๋
- Eclipse๋ผ๋ฉด Export๋ฅผ WAR๋ก, STS๋ผ๋ฉด ํ๋ก์ ํธ ์ฐํด๋ฆญ -> Run as -> Maven Clean, Maven Install
ํด๋ผ์ฐ๋ ์๋ฒ์ ํฐ์บฃ์ ์ค์น
๋๋ vultr์ ํตํด์ ํด๋ผ์ฐ๋ ์ปดํจํ ์ ํ๋ค. OS๋ CentOS8๋ก ์ ํ์๋ค.
- JAVA ์ค์น ๊ธฐ๋ณธ์ผ๋ก openJDK 1.8.0์ด ์ค์น๋์ด ์์๋ค. ํ์ง๋ง JAVA_HOME์ด ์กํ ์์ง ์์์ ์ก์์ค์ผ ํ๋ค.
1
export JAVA_HOME=/usr/lib/jvm/jre-openjdk
- TOMCAT ์ค์น ์ค์น ๊ฒฝ๋ก๋ /opt/apach_๋ฒ์ ์ผ๋ก ํ๋ค.
1 2 3
cd /opt sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz sudo tar -zxvf apach-tomcat-9.0.85.tar.gz
root๋ก ํฐ์บฃ ์๋น์ค๋ฅผ ์คํํ๋ฉด ๋ณด์ ์ํ์ด ์๋ค. ์ฌ์ฉ์๋ฅผ ์์ฑํด์ ์คํํ๋๋ก ํ์.
1
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
ํฐ์บฃ ๋๋ ํ ๋ฆฌ์ ์์ ์์ ๊ถํ ์ค์
1
sudo chown -R tomcat: /opt/apache-tomcat-9.0.85
ํฐ์บฃ ์๋น์ค ๋ฑ๋ก
1
sudo vi /etc/systemd/system/tomcat.service
ํฐ์บฃ ์๋น์ค ๋ด์ฉ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[Unit]
Description=Apache Tomcat 9.0 Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre-openjdk
Environment=CATALINA_PID=/opt/apache-tomcat-9.0.85/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/apache-tomcat-9.0.85
Environment=CATALINA_BASE=/opt/apache-tomcat-9.0.85
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/apache-tomcat-9.0.85/bin/startup.sh
ExecStop=/opt/apache-tomcat-9.0.85/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
ํฐ์บฃ ์๋น์ค ๋ฑ๋ก ๋ฐ ์์
1
2
3
4
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat
๋ฐฉํ๋ฒฝ ์ค์
1
2
3
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
- WAR ํ์ผ ์ ์ก scp๋ฅผ ํตํด์ ๋ก์ปฌ์ warํ์ผ์ ์ ์กํ๋ค.
1
scp myMusinsa.war root@158.247.252.248:/opt/apach-tomcat-9.0.85/webapps
server.xml์ ์์ ํ์ฌ ๋ด warํ์ผ์ ๋ณด๋๋ก ํ๋ค.
1
2
3
4
5
6
// tomcat root ๋๋ ํ ๋ฆฌ์์.
vi conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="myMusinsa" reloadable="false"> </Context>
Host ํ๊ทธ์ Context ํ๊ทธ ์ ๋ ฅ.
- MariaDB ์ค์น MariaDB ์ค์น repo ๋ค์ด๋ก๋
1
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
๋ค์ด๋ก๋๋ฐ์ ํ์ผ ์คํ๊ฐ๋ฅํ๋๋ก and ์คํ ์ค๊ฐ์ ๋ฒ์ ํ์ธ ํ ๋์ํ๋ฉด y
1
2
3
chmod 777 mariadb_repo_setup
./mariadb_repo_setup
dnf install MariaDB-server MariaDB-client MariaDB-common
์๋น์ค ์ฌ์์, ํ์ฑํ, ํ์ธ
1
2
3
systemctl restart mariadb
systemctl enable mariadb
systemctl status mariadb
- mariadb root ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ
1 2 3 4
mariadb -uroot ALTER USER 'root'@'localhost' IDENTIFIED BY '์๋ก์ด_๋น๋ฐ๋ฒํธ'; FLUSH PRIVILEGES; exit;
- mariadb sqlํ์ผ ์คํ
1
mysql -u username -p๋น๋ฐ๋ฒํธ dbname < filename.sql
Trouble shooting
- java.lang.NoClassDefFoundError ์์กด์ฑ ๋ฌธ์ ํน์ ๋ฒ์ ํธํ์ ๋ฌธ์ ๊ฐ ์์ธ์ด๋ค.
pom.xml์์ ํธํ์ด ์๋๋ ๋ฒ์ ์ ๊ณ ์น๊ณ , ๋ถ์กฑํ ์์กด์ฑ์ด ์๋ค๋ฉด ์ถ๊ฐํด์ค๋ค.
- ckeditor๋ฅผ ์ด์ฉํด ์๋ฒ๋ก ์
๋ก๋ํ ์ด๋ฏธ์ง ์๋ณด์ด๋ ๋ฌธ์
๋๋ฒ๊น ์์๋ sts์ workspace ๊ฒฝ๋ก์์.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cjs2108_mjyProject/resources/data
๋ฅผ ๊ธฐ์ค์ผ๋ก ์ก๊ณ ๊ทธ ํ์์์ ์ํ, ๊ฒ์ํ, ๊ณต์ง์ฌํญ์ ๋ค์ด๊ฐ๋ ์ด๋ฏธ์ง๊ฐ ๊ฐ๊ฐ์ ๋๋ ํ ๋ฆฌ๋ฅผ ํฅํด ๊ฐ๋๋ก ํ์๋ค.
- java.lang.NoClassDefFoundError ์์กด์ฑ ๋ฌธ์ ํน์ ๋ฒ์ ํธํ์ ๋ฌธ์ ๊ฐ ์์ธ์ด๋ค.
- ๊ฒ์๋ฌผ ๋ฑ๋ก ์ : ์ด๋ฏธ์ง๊ฐ ํด๋นํ๋ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ
- ๊ฒ์๋ฌผ ์์ ์ : ์ด๋ฏธ์ง๋ฅผ ์ ์ ์ง์ ๋ ์์ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
- ๊ฒ์๋ฌผ ์์ ์๋ฃ ์ : ์ด๋ฏธ์ง ์๋ณต
์ด๋ฏธ์ง ์ด๋ฆ๋ง์ ๋ฐ๋ก ๋ถ๋ฆฌํด์ผํ๋ ์์
๋ค์ด ๋ง์๋๋ฐ, ๊ฒฝ๋ก์์ ์ด๋ฏธ์ง ์ด๋ฆ์ด ์์ํ๋ index๋ฅผ hardcoding (์ด์งธ์.. ์โฆ๊ทธ๋ฌ์๊น) ์ผ๋ก ์ก์๋์๊ณ ์ด ๋ถ๋ถ์ด ๋ฌธ์ ๊ฐ ๋์๋ค.
๋ฐฐํฌ์์๋ tomcat์ ์ฌ๋ฆฐ warํ์ผ์ ๋๋ ํ ๋ฆฌ ๊ธฐ์ค์ผ๋ก ๊ฐ๊ธฐ ๋๋ฌธ์ index๊ฐ ๋ง์ง ์์์ ์ ๋๋ก ๋ถ๋ฌ์ค์ง ๋ชปํ์๋ค.
์ ๊ท์์ ์ฌ์ฉํด์ ์ด๋ฏธ์ง์ ์ด๋ฆ์ ์ ๋๋ก ๊ฐ์ ธ์ค๋๋ก ํ์ฌ ํด๊ฒฐํ์๋ค.
๐์ ๋ฌด๊ด๋ฆฌ ์๋น์ค
๋์ปค๋ฅผ ํตํ ๋ฐฐํฌ
๋์ปคํ์ผ ๋น๋ : ๋น๋ํ ์์คํ ์ CPU ์ํคํ ์ฒ๊ฐ ์ด์๋ฅผ ์ผ์ผํฌ ์ ์์ผ๋ฏ๋ก ๋ฐฐํฌ์์๋ ์๋ฒ์์ ๋์ปคํ์ผ์ ๋น๋ํ๋๋ก ํ์๋ค.
์ด์ ๋ ๊ฐ๋ฐ์๋ CPU ์ํคํ ์ฒ๋ฅผ ๊ตฌ๋ถํด์ผ ํฉ๋๋ค.
๋์ปค ํ์ผ ๋น๋ ๊ณผ์
- Dockerfile๋ก ๋ด ์ด๋ฏธ์ง ๋น๋ ํ๊ฒฝ ๊ตฌ์ฑ
docker-compose.yml ๋ก ์ฑ๊ณผ DB ์ปจํ ์ด๋ ๊ตฌ์ฑ ๋ฐ ์ฐ๊ฒฐ
- docker-compose up -d
docker-compose logs
- mariaDB ์ปจํ ์ด๋์ DB ๋ณต์
1
2
3
4
docker cp BSMG_2024-01-06.sql bsmgDB:/backup.sql
docker exec -it bsmgDB bash
mariadb -u root -p0000 BSMG < backup.sql
๋ฐฐํฌ ์๋ฒ ์ค์
- ํฌํธ ์ด๊ธฐ
- ๋ฐฐํฌ ์๋ฒ์์ git clone
- docker ์ค์นํ๊ธฐ 3-1. (Ubuntu)
์์คํ ํจํค์ง ์ ๋ฐ์ดํธ
1 2
sudo apt update sudo apt upgrade -y
๋์ปค ํ์ ํจํค์ง ์ค์น
1
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
๋์ปค GPG ํค ์ถ๊ฐ
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
๋์ปค APT์ ์ฅ์ ์ถ๊ฐ
1
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
์์คํ ํจํค์ง ์ ๋ฐ์ดํธ
1
sudo apt update
๋์ปค ์ค์น
1
sudo apt install -y docker-ce docker-ce-cli containerd.io
๋์ปค ์๋น์ค ์์ ๋ฐ ๋ถํ ์ ์๋ ์คํ
1 2
sudo systemctl start docker sudo systemctl enable docker
3-2. Rocky linux8 Docker ์ค์น
https://xshine.tistory.com/342 [๋ฉ๋ชจํ๋์ต๊ด:ํฐ์คํ ๋ฆฌ]
sudo yum install -y yum-utils
Docker repository ์ถ๊ฐ
1 2 3 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Docker Engine ์ค์น
1
2
sudo yum install docker-ce docker-ce-cli containerd.io #### Docker ์คํ
sudo systemctl start docker
๋ฐฐํฌ์๋ฒ์์ ์ด๋ฏธ์ง ๋น๋
webServer build
1
2
3
4
docker build -t web . #bsmgRefactoring์์
docker compose up --build -d #๊ธฐ์กด ์ด๋ฏธ์ง์์ ๋ณ๊ฒฝ์ ๋ง ๋น๋
docker compose ps
docker compose down ๋ฑ compose๋ก ํ๋ฒ์ ์ ์ด ๊ฐ๋ฅ
๐ ์ค์ ์๋ฃ
์ดํ์ docker compose๋ฅผ ํตํด์ ์๋น์ค๋ฅผ ๊ด๋ฆฌํ๋ฉด ๋๋ค.