vagrant@slave3:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Shell 에서 나갔다고 들어오면 rust path 자동 인식
vagrant@slave3:~$ cargo version
cargo 1.82.0 (8f40fc59f 2024-08-21)
vagrant@slave3:~$ rustc --version
rustc 1.82.0 (f6e511eec 2024-10-15)
mkdir workspace
cd workspace
cargo new khagor
cd khagor
vagrant@slave3:~/workspace/khagor$ cargo run
Compiling khagor v0.1.0 (/home/vagrant/workspace/khagor)
error: linker `cc` not found
|
= note: No such file or directory (os error 2)
error: could not compile `khagor` (bin "khagor") due to 1 previous error
vagrant@slave3:~/workspace/khagor$ sudo apt install build-essential cmake
...
vagrant@slave3:~/workspace/khagor$ cargo run
Compiling khagor v0.1.0 (/home/vagrant/workspace/khagor)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.91s
Running `target/debug/khagor`
Hello, world!
✔️ GIT 서버 연계
https://github.com/chojeonghak/khagor.git
vagrant@slave3:~/workspace/khagor$ cargo build --release
Compiling khagor v0.1.0 (/home/vagrant/workspace/khagor)
Finished `release` profile [optimized] target(s) in 1.01s
vagrant@slave3:~/workspace/khagor$ ./target/release/khagor
Hello, world!
vi dockerfile
FROM ubuntu:20.04
WORKDIR /app
COPY ./target/release /app
RUN chmod +x khagor
CMD ["/app/khagor"]
vagrant@slave3:~/workspace/khagor$ docker build -t khagor .
vagrant@slave3:~/workspace/khagor$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
khagor latest 54fc6f2c0a62 4 minutes ago 73.7MB
vagrant@slave3:~/workspace/khagor$ docker run -it khagor bash
root@5a99dcf69d97:/app# ./khagor
Hello, world!
vagrant@slave3:~/workspace/khagor$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b7213af6cd2 khagor "bash" 23 seconds ago Exited (0) 9 seconds ago tender_napier
vagrant@slave3:~/workspace/khagor$ docker logs 3b7213af6cd2
root@3b7213af6cd2:/app# ./khagor
Hello, world!
root@3b7213af6cd2:/app# exit
exit
vagrant@slave3:~/workspace/khagor$ docker login
USING WEB-BASED LOGIN
To sign in with credentials on the command line, use 'docker login -u <username>'
Your one-time device confirmation code is: ZKHX-NXGP
Press ENTER to open your browser or submit your device code here: https://login.docker.com/activate
Waiting for authentication in the browser…
위 사이트로 이동 , code 입력 (위의 경우
ZKHX-NXGP)
vagrant@slave3:~/workspace/khagor$ docker tag khagor:latest chojeonghak/khagor:0.1
vagrant@slave3:~/workspace/khagor$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
chojeonghak/khagor 0.1 54fc6f2c0a62 10 minutes ago 73.7MB
khagor latest 54fc6f2c0a62 10 minutes ago 73.7MB
vagrant@slave3:~/workspace/khagor$ docker push chojeonghak/khagor:0.1
The push refers to repository [docker.io/chojeonghak/khagor]
11c2f8a3c23b: Pushed
02f4f5b230e9: Pushed
ae7b36357d5c: Pushed
fffe76c64ef2: Mounted from library/ubuntu
0.1: digest: sha256:d38dde5f079e3c39252c976db1e1bbe6cd52e069e6c4d7dd39ccc9f9ac550c70 size: 1156

vagrant@slave3:~/workspace/khagor$ kubectl run khagor --image=chojeonghak/khagor:0.1
pod/khagor created
vagrant@slave3:~/workspace/khagor$ k get po
NAME READY STATUS RESTARTS AGE
khagor 0/1 Completed 1 (2s ago) 6s
vagrant@slave3:~/workspace/khagor$ k logs khagor
Hello, world!