Post

๐Ÿค” ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์— ๋ฐฐํฌ

๊ฐœ์š”

์ด์ „ ํ”„๋กœ์ ํŠธ๋“ค์„ ๋ฐฐํฌํ•˜๋ฉฐ ๊ณผ์ •์„ ๊ธฐ๋กํ•˜๋ ค ํ•œ๋‹ค.

๐Ÿ‘‰Spring Project (์‡ผํ•‘๋ชฐ)

WAR ํŒŒ์ผ๋กœ ๋นŒ๋“œ

  • Eclipse๋ผ๋ฉด Export๋ฅผ WAR๋กœ, STS๋ผ๋ฉด ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ -> Run as -> Maven Clean, Maven Install

ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์— ํ†ฐ์บฃ์„ ์„ค์น˜

๋‚˜๋Š” vultr์„ ํ†ตํ•ด์„œ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์„ ํ–ˆ๋‹ค. OS๋Š” CentOS8๋กœ ์ •ํ•˜์˜€๋‹ค.

  1. JAVA ์„ค์น˜ ๊ธฐ๋ณธ์œผ๋กœ openJDK 1.8.0์ด ์„ค์น˜๋˜์–ด ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ JAVA_HOME์ด ์žกํ˜€ ์žˆ์ง€ ์•Š์•„์„œ ์žก์•„์ค˜์•ผ ํ•œ๋‹ค.
    1
    
    export JAVA_HOME=/usr/lib/jvm/jre-openjdk
    
  2. 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

  1. 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 ํƒœ๊ทธ ์ž…๋ ฅ.

  1. 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

    1. java.lang.NoClassDefFoundError ์˜์กด์„ฑ ๋ฌธ์ œ ํ˜น์€ ๋ฒ„์ „ ํ˜ธํ™˜์˜ ๋ฌธ์ œ๊ฐ€ ์›์ธ์ด๋‹ค.
      pom.xml์—์„œ ํ˜ธํ™˜์ด ์•ˆ๋˜๋Š” ๋ฒ„์ „์„ ๊ณ ์น˜๊ณ , ๋ถ€์กฑํ•œ ์˜์กด์„ฑ์ด ์žˆ๋‹ค๋ฉด ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

    2. ckeditor๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„๋กœ ์—…๋กœ๋“œํ•œ ์ด๋ฏธ์ง€ ์•ˆ๋ณด์ด๋Š” ๋ฌธ์ œ
      ๋””๋ฒ„๊น… ์‹œ์—๋Š” sts์˜ workspace ๊ฒฝ๋กœ์—์„œ .metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cjs2108_mjyProject/resources/data ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žก๊ณ  ๊ทธ ํ•˜์œ„์—์„œ ์ƒํ’ˆ, ๊ฒŒ์‹œํŒ, ๊ณต์ง€์‚ฌํ•ญ์— ๋“ค์–ด๊ฐ€๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๊ฐ๊ฐ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ–ฅํ•ด ๊ฐ€๋„๋ก ํ•˜์˜€๋‹ค.
  • ๊ฒŒ์‹œ๋ฌผ ๋“ฑ๋ก ์‹œ : ์ด๋ฏธ์ง€๊ฐ€ ํ•ด๋‹นํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ
  • ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ์‹œ : ์ด๋ฏธ์ง€๋ฅผ ์ž ์‹œ ์ง€์ •๋œ ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
  • ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ์™„๋ฃŒ ์‹œ : ์ด๋ฏธ์ง€ ์›๋ณต

์ด๋ฏธ์ง€ ์ด๋ฆ„๋งŒ์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด์•ผํ•˜๋Š” ์ž‘์—…๋“ค์ด ๋งŽ์•˜๋Š”๋ฐ, ๊ฒฝ๋กœ์—์„œ ์ด๋ฏธ์ง€ ์ด๋ฆ„์ด ์‹œ์ž‘ํ•˜๋Š” index๋ฅผ hardcoding (์–ด์งธ์„œ.. ์™œโ€ฆ๊ทธ๋žฌ์„๊นŒ) ์œผ๋กœ ์žก์•„๋†“์•˜๊ณ  ์ด ๋ถ€๋ถ„์ด ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋‹ค.
๋ฐฐํฌ์‹œ์—๋Š” tomcat์— ์˜ฌ๋ฆฐ warํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— index๊ฐ€ ๋งž์ง€ ์•Š์•„์„œ ์ œ๋Œ€๋กœ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ•˜์˜€๋‹ค.

์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฏธ์ง€์˜ ์ด๋ฆ„์„ ์ œ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

๐Ÿ‘‰์—…๋ฌด๊ด€๋ฆฌ ์„œ๋น„์Šค

๋„์ปค๋ฅผ ํ†ตํ•œ ๋ฐฐํฌ

๋„์ปคํŒŒ์ผ ๋นŒ๋“œ : ๋นŒ๋“œํ•œ ์‹œ์Šคํ…œ์˜ CPU ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ด์Šˆ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฐฐํฌ์‹œ์—๋Š” ์„œ๋ฒ„์—์„œ ๋„์ปคํŒŒ์ผ์„ ๋นŒ๋“œํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

์ด์ œ๋Š” ๊ฐœ๋ฐœ์ž๋„ CPU ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋„์ปค ํŒŒ์ผ ๋นŒ๋“œ ๊ณผ์ •

  1. Dockerfile๋กœ ๋‚ด ์ด๋ฏธ์ง€ ๋นŒ๋“œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ
  2. docker-compose.yml ๋กœ ์•ฑ๊ณผ DB ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ๋ฐ ์—ฐ๊ฒฐ

  3. docker-compose up -d
  4. docker-compose logs

  5. 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

๋ฐฐํฌ ์„œ๋ฒ„ ์„ค์ •

  1. ํฌํŠธ ์—ด๊ธฐ
  2. ๋ฐฐํฌ ์„œ๋ฒ„์—์„œ git clone
  3. 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๋ฅผ ํ†ตํ•ด์„œ ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.

This post is licensed under CC BY 4.0 by the author.