Rust, install & run

Jeonghak Cho·2024년 11월 23일

Rust

목록 보기
7/13

OS 버전 확인

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

RUST 설치

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Shell 에서 나갔다고 들어오면 rust path 자동 인식

RUST 버전 확인

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

Hello World

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

이미지 저장소 (docker hub) 이미지 PUSH

  • 도커 허브 인증
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
  • PUSH
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
  • 도커 허브 확인

쿠버네티스 POD 생성

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!

0개의 댓글