ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

์ž‘์—…ํ™˜๊ฒฝ
window10
wsl2-ubuntu

1. ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

 

์ €๋Š” war ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํ™˜๊ฒฝ
springboot 3.0.2
jdk 17
STS

์˜์กด์„ฑ
Spring boot DevTools
Spring web

ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋ฉด

์ด์ œ index.html์„ ์ƒ์„ฑํ•ด์„œ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

index.html

 - /src/main/resources/static/index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>kithub</title>
</head>
<body>
	<h2>์•ˆ๋…•ํ•˜์„ธ์š” ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค. kithub ์ž…๋‹ˆ๋‹ค.^^</h2>
</body>
</html>

 

html ์ƒ์„ฑ ํ›„ ํ†ฐ์ผ“์„ ์‹คํ–‰์‹œ์ผœ ๋ณด๋ฉด ํ…Œ์ŠคํŠธ ํŽ˜์ด์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2.  ๋ฐฐํฌ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

๊ฐ„๋‹จํ•œ ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ–ˆ์œผ๋‹ˆ ์ด์ œ ์šฐ๋ฆฌ๋Š” ํ†ฐ์ผ“์—  ๋ฐฐํฌํ•  WAR ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋ณผ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

 

์šฐ์„   springboot๋กœ war ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์ „์— ์‚ฌ์ „ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

pom.xml ํŒŒ์ผ์„ ์—ด๊ณ  ๋‹ค์Œ ๊ตฌ์„ฑ์œผ๋กœ ๋ณ€๊ฒฝํ•ด ์ค์‹œ๋‹ค.

<properties></proerties>์˜ ๊ตฌ์„ฑ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค.

<properties>
    <java.version>17</java.version>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

 

๊ทธ๋ฆฌ๊ณ ,

 

 <build></build> ์˜ ๊ตฌ์„ฑ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•ด ์ค๋‹ˆ๋‹ค.

 
<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <source>11</source>
            <target>11</target>
        </configuration>
    </plugin>
</plugins>

 

์ด์ œ ๋ฐฐํฌํŒŒ์ผ ์ƒ์„ฑ์„ ์œ„ํ•œ ์ž‘์—…์€ ๋์ด ๋‚ฌ์Šต๋‹ˆ๋‹ค.

 

pom.xml ์ „์ฒด ์†Œ์Šค

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.0.2</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.kithub.docker</groupId>
	<artifactId>docker-1</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<properties>
		<java.version>17</java.version>
		<maven.compiler.source>11</maven.compiler.source>
		<maven.compiler.target>11</maven.compiler.target>
	</properties>
	<name>docker-1</name>
	<description>Demo project for Spring Boot</description>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web-services</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<source>11</source>
					<target>11</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

 

์ด์ œ war ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ๋ด…๋‹ˆ๋‹ค. 

ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ > export > web > WAR file ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

next๋ฅผ ๋ˆ„๋ฅธ ๋’ค ๋ฐฐํฌํŒŒ์ผ์„ ์ €์žฅํ•  ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด ์ค์‹œ๋‹ค.

์ƒ์„ฑ์ด ๋๋‚˜๋ฉด ์ง€์ •ํ•œ ์œ„์น˜์—์„œ war ํŒŒ์ผ์ด ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ด…๋‹ˆ๋‹ค.

 

 

3.  ํ†ฐ์ผ“ ์ปจํ…Œ์ด๋„ˆ์— war ๋ฐฐํฌํ•˜๊ธฐ

์ด์ œ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ชจ๋“  ์ค€๋น„๋ฅผ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค.

์ด์ œ ํ•ด์•ผ ํ•  ์ผ์€ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  war ํŒŒ์ผ์„ ๋„์ปค๋กœ ์˜ฌ๋ ค๋†“์€ ํ†ฐ์ผ“(์ปจํ…Œ์ด๋„ˆ) ํด๋”๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 > wsl2(์šฐ๋ถ„ํˆฌ)์—์„œ ์œˆ๋„์šฐ ์‹œ์Šคํ…œ ์ ‘๊ทผํ•˜๊ธฐ
์šฐ์„  /mnt ํด๋”๋กœ ์ฐพ์•„ ๋“ค์–ด๊ฐ„ ๋’ค ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ด ๋ณด๋ฉด c d wsl ์ด ์กด์žฌํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” wsl๊ณผ ์œˆ๋„์šฐ์˜ ๋“œ๋ผ์ด๋ธŒ๋Š” ์„œ๋กœ ๋งˆ์šดํŠธ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ftp ํ”„๋กœ๊ทธ๋žจ ์—†์ด ๋ฆฌ๋ˆ…์Šค์™€ ์œˆ๋„์šฐ๊ฐ„์˜ ํŒŒ์ผ ์ด๋™/๋ณต์‚ฌ๊ฐ€ ์†์‰ฝ๊ฒŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

sintae@DESKTOP-JAQ684D:/$ cd /mnt
sintae@DESKTOP-JAQ684D:/mnt$ ls
c  d  wsl

์œˆ๋„์šฐ ๋“œ๋ผ์ด๋ธŒ์— ์ ‘๊ทผํ–ˆ์œผ๋‹ˆ ์œ„์—์„œ ์ƒ์„ฑํ•œ war ํŒŒ์ผ์„ ์˜ฎ๊ฒจ๋ณด๋„๋ก ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

> ํŒŒ์ผ ๋ณต์‚ฌํ•˜๊ธฐ

์šฐ๋ฆฌ๋Š” cp ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด war ํŒŒ์ผ์„ ํ†ฐ์ผ“(์ปจํ…Œ์ด๋„ˆ)๋กœ ๋ณต์‚ฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

docker cp [๋ณต์‚ฌํ• ํŒŒ์ผ๋ช…] [์ปจํ…Œ์ด๋„ˆID]:[๋ณต์‚ฌํ• ๊ฒฝ๋กœ]
docker cp ๋ช…๋ น์–ด ๊ณต์‹๋ฌธ์„œ
sintae@DESKTOP-JAQ684D:/mnt/c/coding$ docker cp docker.war 76be015094f2:/usr/local/tomcat/webapps/

76be015094f2 ID๋กœ ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ /usr/local/tomcat/webapps/ ๊ฒฝ๋กœ๋กœ docker.war ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด์ค˜

๋ผ๋Š” ์˜๋ฏธ ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์‹ค์ œ๋กœ ๋ณต์‚ฌ๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

sintae@DESKTOP-JAQ684D:/mnt/c/coding$ docker exec -it 76be015094f2 /bin/bash
root@76be015094f2:/usr/local/tomcat# cd webapps
root@76be015094f2:/usr/local/tomcat/webapps# ll
total 14820
drwxr-xr-x  8 root root     4096 Feb 11 09:20 ./
drwxr-xr-x  1 root root     4096 Feb 11 07:41 ../
drwxr-x---  4 root root     4096 Feb 11 09:20 docker/
-rwxrwxrwx  1 1000 1000 15138743 Feb 11 07:30 docker.war*
drwxr-xr-x 15 root root     4096 Feb  1 02:40 docs/
drwxr-xr-x  7 root root     4096 Feb  1 02:40 examples/
drwxr-xr-x  6 root root     4096 Feb  1 02:40 host-manager/
drwxr-xr-x  6 root root     4096 Feb  1 02:40 manager/
drwxr-xr-x  3 root root     4096 Feb  1 02:40 ROOT/

์‹คํ–‰์ค‘์ธ ํ†ฐ์ผ“ ํด๋”์— ์ ‘๊ทผํ•˜์—ฌ ๋ชฉ๋ก์„ ์‚ดํŽด๋ณด๋ฉด ์‹ค์ œ๋กœ 'docker.war*' ๋ผ๋Š” ํŒŒ์ผ์ด ๋ณต์‚ฌ๋˜ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docker/ ํด๋”๊ฐ€ ์ƒ์„ฑ ๋˜์–ด ์žˆ๋Š” ์ด์œ ๋Š” webapps ํด๋”์— war๋ฅผ ๊ฐ์ง€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์ž, ๋“œ๋””์–ด ์šฐ๋ฆฐ ๋„์ปค๋กœ ๊ตฌ์„ฑํ•œ ํ†ฐ์ผ“์— war ํŒŒ์ผ์„ ์˜ฎ๊ธฐ๋Š”๋ฐ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

์ด์ œ ์šฐ๋ฆฌ์˜ ํ†ฐ์ผ“์ด ์Šค์Šค๋กœ war๋ฅผ ๋ฐฐํฌํ•ด ์ฃผ์—ˆ์œผ๋‹ˆ, ์ ‘์†์„ ํ•ด๋ณด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

http://localhost:8085/docker/ ์ ‘์†!

๊น”๋”ํ•˜๊ฒŒ ์•„๋ฌด๋ฌธ์ œ์—†์ด ์ œ๋Œ€๋กœ ๋ฐฐํฌ๊ฐ€ ๋˜์—ˆ์Œ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค ! 

 

๋Œ“๊ธ€
๋ฐ˜์‘ํ˜•