Defined CMD in Dockerfile; ENTRYPOINT now supports user-provided commands
All checks were successful
Update Docker Hub Description / dockerHubDescription (push) Successful in 12s
All checks were successful
Update Docker Hub Description / dockerHubDescription (push) Successful in 12s
This commit is contained in:
@@ -39,41 +39,69 @@ function _main {
|
||||
gid=$(id -g dhcpd)
|
||||
chown -R dhcpd: "/data/dhcpd4.leases" "/data/dhcpd6.leases"
|
||||
|
||||
export CMDv4="/usr/sbin/dhcpd -4 -f -d --no-pid -cf /data/dhcpd4.conf -lf /data/dhcpd4.leases -user dhcpd -group dhcpd"
|
||||
#export CMDv4="/usr/sbin/dhcpd -4 -f -d --no-pid -cf /data/dhcpd4.conf -lf /data/dhcpd4.leases -user dhcpd -group dhcpd"
|
||||
export CMDv6="/usr/sbin/dhcpd -6 -f -d --no-pid -cf /data/dhcpd6.conf -lf /data/dhcpd6.leases -user dhcpd -group dhcpd"
|
||||
|
||||
[ "$DHCP4" = "1" ] && export CMD=$CMDv4
|
||||
if [ "$DHCP6" = "1" ]; then
|
||||
[ -z "$CMD" ] && export CMD=$CMDv6 || $CMDv6 &
|
||||
fi
|
||||
chown -R dhcpd: "/data"
|
||||
}
|
||||
|
||||
function custom_bashrc {
|
||||
echo '
|
||||
custom_bashrc() {
|
||||
cat <<'EOF'
|
||||
export LS_OPTIONS="--color=auto"
|
||||
alias "ls=ls $LS_OPTIONS"
|
||||
alias "ll=ls $LS_OPTIONS -la"
|
||||
alias "l=ls $LS_OPTIONS -lA"
|
||||
'
|
||||
alias ls='ls $LS_OPTIONS'
|
||||
alias ll='ls $LS_OPTIONS -la'
|
||||
alias l='ls $LS_OPTIONS -lA'
|
||||
|
||||
# prompt SOLO per shell interattive
|
||||
if [[ $- == *i* ]]; then
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
PS1="\[\e[35m\][\[\e[31m\]\u\[\e[36m\]@\[\e[32m\]\h\[\e[90m\] \w\[\e[35m\]]\[\e[0m\]# "
|
||||
else
|
||||
PS1="\[\e[35m\][\[\e[33m\]\u\[\e[36m\]@\[\e[32m\]\h\[\e[90m\] \w\[\e[35m\]]\[\e[0m\]$ "
|
||||
fi
|
||||
export PS1
|
||||
fi
|
||||
EOF
|
||||
}
|
||||
|
||||
function _bashrc {
|
||||
echo "-----------------------------------------"
|
||||
echo " .bashrc file setup..."
|
||||
echo "-----------------------------------------"
|
||||
custom_bashrc | tee /root/.bashrc
|
||||
echo 'export PS1="\[\e[35m\][\[\e[31m\]\u\[\e[36m\]@\[\e[32m\]\h\[\e[90m\] \w\[\e[35m\]]\[\e[0m\]# "' >> /root/.bashrc
|
||||
for i in $(ls /home); do echo 'export PS1="\[\e[35m\][\[\e[33m\]\u\[\e[36m\]@\[\e[32m\]\h\[\e[90m\] \w\[\e[35m\]]\[\e[0m\]$ "' >> /home/${i}/.bashrc; done
|
||||
setup_bashrc() {
|
||||
for home in /root /home/*; do
|
||||
[ -d "$home" ] || continue
|
||||
bashrc="$home/.bashrc"
|
||||
|
||||
# crea se manca
|
||||
[ -f "$bashrc" ] || touch "$bashrc"
|
||||
|
||||
# evita duplicazioni
|
||||
grep -q '### CUSTOM BASHRC ###' "$bashrc" && continue
|
||||
|
||||
{
|
||||
echo ''
|
||||
echo '### CUSTOM BASHRC ###'
|
||||
custom_bashrc
|
||||
} >> "$bashrc"
|
||||
done
|
||||
}
|
||||
|
||||
#_dirs
|
||||
_main
|
||||
_bashrc
|
||||
setup_bashrc
|
||||
|
||||
#CMD="$@"
|
||||
[ -z "$CMD" ] && export CMD="supervisord -c /etc/supervisor/supervisord.conf"
|
||||
# If any arguments were passed (i.e., CMD from Dockerfile), store them in CMD
|
||||
[ "$#" -gt 0 ] && CMD="$@"
|
||||
|
||||
exec $CMD
|
||||
[ "$DHCP4" = "0" ] && export CMD=""
|
||||
if [ "$DHCP6" = "1" ]; then
|
||||
[ -z "$CMD" ] && export CMD=$CMDv6 || $CMDv6 &
|
||||
fi
|
||||
|
||||
exit $?
|
||||
[ -z "$CMD" ] && echo "Warning! DHCP not selected." && exit
|
||||
|
||||
# Ensure terminal state is restored and cursor is visible when the container exits
|
||||
trap 'stty sane 2>/dev/null; tput cnorm 2>/dev/null' EXIT
|
||||
|
||||
# print cmd that will be executed
|
||||
echo "Starting: $*" >&2
|
||||
|
||||
# Split CMD into proper arguments and execute
|
||||
set -- $CMD
|
||||
exec "$@"
|
||||
|
||||
Reference in New Issue
Block a user