Toolbox: 아이디어: 호슀트 이름에 OS 릴리슀 포함

에 λ§Œλ“  2019λ…„ 04μ›” 01일  Β·  10μ½”λ©˜νŠΈ  Β·  좜처: containers/toolbox

도ꡬ μƒμž μ»¨ν…Œμ΄λ„ˆ 호슀트 이름에 OS 릴리슀 버전이 ν¬ν•¨λ˜μ–΄ 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€.
μ—¬λŸ¬ 도ꡬ μƒμž 릴리슀λ₯Ό μ‹€ν–‰ν•˜λŠ” 경우 μ–΄λŠ 것이 μ–΄λŠ 것인지 ν˜Όλ™λ  수 μžˆμŠ΅λ‹ˆλ‹€.

toolbox:30 등을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이것은 단지 μ œμ•ˆμΌ λΏμž…λ‹ˆλ‹€.

1. Feature request 5. Help Wanted

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@Jmennius 호슀트 이름을 μΈμˆ˜ν•˜λŠ” λŒ€μ‹  이와 같은 ν™˜κ²½ λ³€μˆ˜λ₯Ό λ…ΈμΆœν•˜λŠ” 것이 쒋을 것이라고 μƒκ°ν•©λ‹ˆλ‹€. λ˜ν•œ 호슀트 이름을 ν‘œμ‹œν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλŠ” μ‚¬μš©μž 지정 ν”„λ‘¬ν”„νŠΈκ°€ μžˆλŠ” μ‚¬μš©μžμ—κ²Œ 더 λ§Žμ€ μœ μ—°μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

λͺ¨λ“  10 λŒ“κΈ€

κΈ€μŽ„, λ‚˜λŠ” envvarsκ°€ μžˆλ‹€λŠ” 것을 μ•ˆλ‹€.

DISTTAG=f30container
FGC=f30

ν•œμ •λœ.

예, 이것이 μ§„μ •ν•œ λ¬Έμ œλΌλŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€.

도ꡬ μƒμžμ˜ 호슀트 이름 μ£Όμœ„μ— λ‚΄ 컴퓨터 호슀트 이름이 κ·Έλ¦¬μ›Œμ§‘λ‹ˆλ‹€. λ˜ν•œ λ‚΄ μ„œλ²„μ—μ„œ Silverblueλ₯Ό μ‚¬μš©ν•˜κΈ° μ‹œμž‘ν•˜λ©΄(CoreOSμ—μ„œ μ—…κ·Έλ ˆμ΄λ“œν•  λ•Œ ν•΄λ‹Ή) toolbox ν”„λ‘¬ν”„νŠΈκ°€ ν‘œμ‹œλ˜λ©΄ λ‚΄κ°€ localhost에 μžˆλŠ”μ§€ λͺ¨λ₯Έ 채 ν˜Όλž€μŠ€λŸ¬μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜λŠ” sshλ₯Ό 톡해 λ‚΄ μ„œλ²„μ—μ„œ.

κΈ°λ³Έ 호슀트 이름이 μ‹œμŠ€ν…œ 호슀트 이름과 도ꡬ μƒμž μ΄λ¦„μœΌλ‘œ κ΅¬μ„±λ˜μ–΄μ•Ό ν•œλ‹€κ³  μ œμ•ˆν•΄λ„ λ κΉŒμš”? 예λ₯Ό λ“€μ–΄, μ €λŠ” μ—¬λŸ¬ 도ꡬ μƒμž(gui, wine, dev, ...)λ₯Ό μ‹€ν–‰ν•˜κ³  μ—¬λŸ¬ 컴퓨터(λ…ΈνŠΈλΆ, μ„œλ²„, ...)λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. 도ꡬ μƒμž 호슀트 이름은 laptop-gui , laptop-dev , server-dev , ...

κ·Έ λ™μ•ˆ μ‰˜μ΄ μ‹œμž‘λ  λ•Œ μ‹€ν–‰λ˜λŠ” init 슀크립트λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

if [[ "$(hostname)" = toolbox ]] && [[ "$(cat /etc/hostname)" != toolbox ]]; then
  hostname="$(cat /etc/hostname)"
  sh="$SHELL"
  if ! [[ -e "$sh" ]]; then
    sh=/bin/bash
  fi
  echo "Changing hostname from toolbox to $hostname and re-executing $sh..."
  sudo hostname "$hostname" && exec "$sh"
fi

toolbox create --container NAME μ‚¬μš©ν•˜μ—¬ podman μˆ˜μ€€μ—μ„œ μ»¨ν…Œμ΄λ„ˆ 이름을 μ§€μ •ν•˜λŠ” 방법이 이미 μžˆμœΌλ―€λ‘œ λ‚΄λΆ€ 호슀트 이름에 이 이름을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€(호슀트 이름 μ œν•œμ„ μΆ©μ‘±ν•˜κΈ° μœ„ν•΄ μ•½κ°„ μˆ˜μ •ν•¨).
기본적으둜:

@@ -1079,7 +1079,7 @@ create()
             --dns none \
             --env TOOLBOX_PATH="$TOOLBOX_PATH" \
             --group-add "$group_for_sudo" \
-            --hostname toolbox \
+            --hostname ${toolbox_container//_/-} \
             --ipc host \
             --label "com.github.containers.toolbox=true" \
             --label "com.github.debarshiray.toolbox=true" \

이 이름(#210)을 μž¬μ •μ˜ν•  μˆ˜λ„ μžˆμ§€λ§Œ μ μ ˆν•œ κΈ°λ³Έκ°’μœΌλ‘œ 이것이 ν•„μš”ν•œ 이유λ₯Ό λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
관심이 μžˆλŠ” 경우 이 λ³€κ²½ 사항이 ν¬ν•¨λœ 풀을 μ—΄ 수 μžˆμŠ΅λ‹ˆλ‹€(λ˜λŠ” Rust λ˜λŠ” Go 버전을 μ‚΄νŽ΄λ΄μ•Ό ν•©λ‹ˆκΉŒ?).

μ‹œμž‘ν•˜κΈ°μ— 쒋은 #383을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€... ;)

powerlevel10k ν…Œλ§ˆμ™€ ν•¨κ»˜ Zshλ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— 도ꡬ μƒμž μœ‘κ°ν˜•κ³Ό μ»¨ν…Œμ΄λ„ˆ 이름을 ν¬ν•¨ν•˜λŠ” p10k에 λŒ€ν•œ κ°„λ‹¨ν•œ 도ꡬ μƒμž ν‘œμ‹œλ₯Ό κ΅¬ν˜„ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€.
image
그러면 호슀트 이름이 μ»¨ν…Œμ΄λ„ˆ μ΄λ¦„μœΌλ‘œ ν‘œμ‹œλ©λ‹ˆλ‹€.

이 μ‹œμ μ—μ„œ λ‚˜λŠ” 이 μˆ˜μ€€μ— λ„λ‹¬ν•˜λ©΄ 호슀트 이름이 μ œν•œμ΄ 되고(밑쀄, μ„Έλ―Έμ½œλ‘  등을 ν—ˆμš©ν•˜μ§€ μ•ŠμŒ) μ…Έμ—μ„œλ„ μ‹€μ œ 호슀트 이름을 λ³Ό 수 μ—†λ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€( 주석 μ°Έμ‘° ).

λŒ€μ‹  μš°λ¦¬κ°€ ν•΄μ•Ό ν•  일은 μ»¨ν…Œμ΄λ„ˆ 내뢀에 ν‘œμ€€ν™”λœ ν˜•μ‹μœΌλ‘œ λͺ¨λ“  도ꡬ μƒμž 메타데이터λ₯Ό μ œκ³΅ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
잠재적으둜 /run/.toolboxenv λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆ 이름( TOOLBOX_CONTAINER_NAME ), 이미지 이름( TOOLBOX_IMAGE_NAME ), 이미지 버전( TOOLBOX_IMAGE_VERISON ) 등에 λŒ€ν•œ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. .
κΈ°λ³Έ PS1은 이 정보λ₯Ό μ‚¬μš©ν•˜μ—¬ 더 λ‚˜μ€ OOB κ²½ν—˜μ„ μ œκ³΅ν•  수 있으며 λ‹€λ₯Έ μ‰˜ ν…Œλ§ˆ/ν”ŒλŸ¬κ·ΈμΈμ€ 더 ν’λΆ€ν•œ κ²½ν—˜μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ 이에 μ˜μ‘΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹Ήμ‹ μ˜ 생각을 κ³΅μœ ν•΄μ£Όμ„Έμš”.
p10k용 PR을 μ—΄κ³  μ‹Άμ§€λ§Œ 이것이 νˆ΄λ°•μŠ€μ˜ ν‘œμ€€μ΄ 될 λ•ŒκΉŒμ§€λŠ” ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

@Jmennius 호슀트 이름을 μΈμˆ˜ν•˜λŠ” λŒ€μ‹  이와 같은 ν™˜κ²½ λ³€μˆ˜λ₯Ό λ…ΈμΆœν•˜λŠ” 것이 쒋을 것이라고 μƒκ°ν•©λ‹ˆλ‹€. λ˜ν•œ 호슀트 이름을 ν‘œμ‹œν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλŠ” μ‚¬μš©μž 지정 ν”„λ‘¬ν”„νŠΈκ°€ μžˆλŠ” μ‚¬μš©μžμ—κ²Œ 더 λ§Žμ€ μœ μ—°μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

λ‚˜λŠ” μš°λ¦¬κ°€ μ‹€μ œλ‘œ μ μ ˆν•œ 이름과 μ„€λͺ…(ν™˜κ²½ λ³€μˆ˜μ™€ κ΄€λ ¨ν•˜μ—¬)을 μ‚¬μš©ν•˜μ—¬ μƒˆλ‘œμš΄ 문제λ₯Ό λ§Œλ“€κ³  μœ λ¦¬ν•˜κ²Œ 이 문제λ₯Ό λ‹«μ•„μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€(ff μœ μ§€ κ΄€λ¦¬μžλŠ” μ‹€μ œλ‘œ μš°λ¦¬μ™€ λ™μ˜ν•©λ‹ˆλ‹€ :smile: ).

@HarryMichal ? 호슀트 이름을 μ‚¬μš©ν•˜λŠ” λŒ€μ‹  특수 ν™˜κ²½ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•΄μ•Ό ν•©λ‹ˆκΉŒ? λ‚΄ μ˜κ²¬μ„ μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법이 κΆκΈˆν•©λ‹ˆλ‹€. ToolboxλŠ” λ‹€λ₯Έ λ°°ν¬νŒλ„ μ§€μ›ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•˜κΈ° λ•Œλ¬Έμ— 호슀트 이름에 OS λ²„μ „λ§Œ μΆ”κ°€ν•˜λŠ” 것이 κ°€μž₯ 단기적인 μ†”λ£¨μ…˜μž…λ‹ˆλ‹€. κ·Έλž˜μ„œ μ•„λ§ˆλ„ <distro>-toolbox-<release> ν˜•μ‹μœΌλ‘œ λ­”κ°€? https://github.com/containers/toolbox/pull/383 μ—μ„œμ™€ 같이 μ»¨ν…Œμ΄λ„ˆμ˜ 이름이 호슀트 이름이어야 ν•œλ‹€κ³  μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

또 ν•˜λ‚˜, Podman은 μ»¨ν…Œμ΄λ„ˆ μžμ²΄μ— μ»¨ν…Œμ΄λ„ˆμ— λŒ€ν•œ 정보λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(flatpaks의 /.flatpak-info 와 달리 /run/.containerenv νŒŒμΌμ€ λΉ„μ–΄ 있음). 이에 λŒ€ν•œ μΆ”κ°€ μ •λ³΄λŠ” μ—…μŠ€νŠΈλ¦Ό λ¬Έμ œμ— μžˆμŠ΅λ‹ˆλ‹€: https://github.com/containers/podman/issues/6192

λ‚˜λŠ” λ˜ν•œ https://github.com/containers/toolbox/pull/210 μ—μ„œ μ œμ•ˆλœ κ²ƒμ²˜λŸΌ --hostname μ˜΅μ…˜μ„ toolbox create μΆ”κ°€ν•˜λŠ” κ²½ν–₯이 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이λ₯Ό μœ„ν•΄μ„œλŠ” @debarshiray의 의견이 ν•„μš”ν•©λ‹ˆλ‹€.

또 λ‹€λ₯Έ 점은 Podman은 μ»¨ν…Œμ΄λ„ˆμ— λŒ€ν•œ 정보λ₯Ό μ»¨ν…Œμ΄λ„ˆ μžμ²΄μ— μ œκ³΅ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€(flatpaks의 /.flatpak-info 와 달리 /run/.containerenv νŒŒμΌμ€ λΉ„μ–΄ 있음). 이에 λŒ€ν•œ μΆ”κ°€ μ •λ³΄λŠ” μ—…μŠ€νŠΈλ¦Ό λ¬Έμ œμ— μžˆμŠ΅λ‹ˆλ‹€. container/podman#6192

이것이 λ°”λ‘œ λ‚΄κ°€ μ œμ•ˆ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 도ꡬ μƒμž λ‚΄λΆ€μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” 일뢀 λ³€μˆ˜λ₯Ό μ±„μš°μ‹­μ‹œμ˜€.

호슀트 μ΄λ¦„μ΄λ‚˜ μ»¨ν…Œμ΄λ„ˆ 이름에 μžλ™μœΌλ‘œ ν•­λͺ©μ„ λ„£λŠ” 것은 μ—΄λ“±ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λͺ¨λ“  것은 μ‚¬μš©μžμ—κ²Œ 달렀 μžˆμŠ΅λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄, μ‰˜ ν”„λ‘¬ν”„νŠΈμ— μ»¨ν…Œμ΄λ„ˆ 이름을 μΆ”κ°€ν•˜λ €λŠ” 경우(ν”„λ‘¬ν”„νŠΈ) λ„ˆλ¬΄ κΈΈκ±°λ‚˜ 관련이 없을 수 μžˆμŠ΅λ‹ˆλ‹€.

#383κ³Ό κ΄€λ ¨ν•˜μ—¬ λ„€, 이것은 제 생각에 μž„μ‹œ 해결책에 κ°€κΉμŠ΅λ‹ˆλ‹€.
μ»¨ν…Œμ΄λ„ˆ 내뢀에 식별 정보가 μžˆλŠ” 경우 - 호슀트 이름에 λŒ€ν•΄ μ‹ κ²½ μ“Έ μ΄μœ κ°€ μ—†λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰