Docker 컨테이너의 Debian /bin/sh는 .profile을 전혀 보지 않는 것 같습니다.

Docker 컨테이너의 Debian /bin/sh는 .profile을 전혀 보지 않는 것 같습니다.

못 받을 것 같아스프린트$HOME/.profile을 확인하세요.

pedz@Peace:s001 ~[S:hatred] % docker exec -it hatred-web-1 dash -i
# cat $HOME/.profile
PROOF=true; export PROOF
PATH=/hatred/bin:$PATH; export PATH
# env | sort
BUNDLE_APP_CONFIG=/usr/local/bundle
BUNDLE_SILENCE_ROOT_WARNING=1
GEM_HOME=/usr/local/bundle
HOME=/root
HOSTNAME=hatred
LANG=C.UTF-8
PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/hatred
RUBY_DOWNLOAD_SHA256=ca10d017f8a1b6d247556622c841fc56b90c03b1803f87198da1e4fd3ec3bf2a
RUBY_MAJOR=3.1
RUBY_VERSION=3.1.2
TERM=xterm
# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 14:28 ?        00:00:01 puma 5.6.5 (tcp://0.0.0.0:3000) [hatred]
root       152     0  0 14:54 pts/0    00:00:00 dash -i
root       161   152  0 14:54 pts/0    00:00:00 ps -ef
# set
BUNDLE_APP_CONFIG='/usr/local/bundle'
BUNDLE_SILENCE_ROOT_WARNING='1'
GEM_HOME='/usr/local/bundle'
HOME='/root'
HOSTNAME='hatred'
IFS='   
'
LANG='C.UTF-8'
OPTIND='1'
PATH='/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID='0'
PS1='# '
PS2='> '
PS4='+ '
PWD='/hatred'
RUBY_DOWNLOAD_SHA256='ca10d017f8a1b6d247556622c841fc56b90c03b1803f87198da1e4fd3ec3bf2a'
RUBY_MAJOR='3.1'
RUBY_VERSION='3.1.2'
TERM='xterm'
_='-ef'
# lsb_release -c
Codename:   bullseye
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
# 

PROOF는 env의 출력에 없으며 PATH /hatred/bin앞에 추가되지 않습니다.

답변1

나는 이 질문을 데비안 사용자 메일링 리스트에 보냈습니다. 누군가가 나에게 그 글을 지적했다.하다행동을 올바르게 설명하십시오. 나를 당황하게 만드는 몇 가지 사항은 다음과 같습니다.

텍스트는 "처음 시작될 때 쉘은 인수 0을 확인하고 대시 '-'로 시작하면 쉘은 인수 0을 확인합니다.반품로그인 쉘로 간주됩니다. "(강조는 제가 추가했습니다).

나는 그 이유를 오해했다 also. 사실, 그것이 왜 거기에 있는지는 불분명합니다.

나에게는 주제가 대화형 쉘에서 로그인 쉘로 변경되었기 때문에 이 문장이 새로운 단락을 시작하는 것이 더 명확할 것입니다. 생략하는 것이 더 명확할 것이고, also그 시점에서 옵션을 언급하는 것이 더 명확할 것입니다.-l

의견에서 지적했듯이 이 모든 내용을 읽으려면 옵션을 $HOME/.profile지정 -l하거나 $0을 대시로 시작해야 합니다.

관련 정보