266 lines
24 KiB
Docker
266 lines
24 KiB
Docker
# Rx3-Docker/Base Docker Image
|
|
#-------------------------------------------------------------------------------
|
|
|
|
FROM mageia:9
|
|
|
|
ARG IMG_URL
|
|
ARG LANG
|
|
ARG LANGUAGE
|
|
ARG LOCALTIME
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------------------------------------
|
|
ARG LOCALE_CONF="LANG=${LANG} \n\
|
|
LANGUAGE=${LANGUAGE}"
|
|
#---------------------------------------------------------------------------------------------------
|
|
|
|
#---------------------------------------------------------------------------------------------------
|
|
ARG RX3_SH='export PAGER=less \n\
|
|
export MANPAGER="less -isr" \n\
|
|
export EDITOR=emacs \n\
|
|
export ISL_FILE=/etc/img_stack_log \n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
cateval() \n\
|
|
{ \n\
|
|
while read line \n\
|
|
do \n\
|
|
eval $line 2>/dev/null \n\
|
|
eval echo $( echo $line | sed -e `s/"/\\"/g`) \n\
|
|
done <$1 \n\
|
|
} \n\
|
|
\n\
|
|
export -f cateval \n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
print() \n\
|
|
{ \n\
|
|
if [[ "$1" == "-i" ]] \n\
|
|
then \n\
|
|
shift \n\
|
|
\n\
|
|
str="%s"`\\\\n` \n\
|
|
else \n\
|
|
str="%s"`\\n` \n\
|
|
fi \n\
|
|
\n\
|
|
printf "${str}" "$*" \n\
|
|
} \n\
|
|
\n\
|
|
export -f print \n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
file_enable() \n\
|
|
{ \n\
|
|
fd_file="$1" \n\
|
|
fd_state="$2" \n\
|
|
\n\
|
|
\n\
|
|
if [[ "$fd_state" == "TRUE" ]] \n\
|
|
then \n\
|
|
if [[ ! -f "${fd_file}" ]] \n\
|
|
then \n\
|
|
mv ${fd_file}.disable ${fd_file} \n\
|
|
fi \n\
|
|
else \n\
|
|
if [[ -f "${fd_file}" ]] \n\
|
|
then \n\
|
|
mv ${fd_file} ${fd_file}.disable \n\
|
|
fi \n\
|
|
fi \n\
|
|
} \n\
|
|
\n\
|
|
export -f file_enable \n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
isl_add() \n\
|
|
{ \n\
|
|
url="$1" \n\
|
|
\n\
|
|
\n\
|
|
reg=${url%%/*} \n\
|
|
\n\
|
|
if [[ "${reg}" == *.* ]] \n\
|
|
then \n\
|
|
url=${url#*/} \n\
|
|
else \n\
|
|
reg="-" \n\
|
|
fi \n\
|
|
\n\
|
|
tag=${url/*:} \n\
|
|
name=${url%:*} \n\
|
|
\n\
|
|
if [[ "${tag}" == "${name}" ]] \n\
|
|
then \n\
|
|
echo "Bad tag format in URL!" \n\
|
|
return 1 \n\
|
|
fi \n\
|
|
\n\
|
|
ts=$(date -u +"%Y/%d/%m %H:%M:%S") \n\
|
|
\n\
|
|
if [[ ! -e ${ISL_FILE} ]] \n\
|
|
then \n\
|
|
id=1 \n\
|
|
else \n\
|
|
id=$(( $(wc -l <${ISL_FILE}) + 1)) \n\
|
|
fi \n\
|
|
\n\
|
|
str="${id} ${ts} ${reg} ${name} ${tag}" \n\
|
|
\n\
|
|
if [[ $id == "1" ]] \n\
|
|
then \n\
|
|
echo "${str}" >${ISL_FILE} \n\
|
|
else \n\
|
|
sed -i `1i\`"${str}" ${ISL_FILE} \n\
|
|
fi \n\
|
|
} \n\
|
|
\n\
|
|
export -f isl_add \n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
isl_top() \n\
|
|
{ \n\
|
|
line=$( head -1 ${ISL_FILE}) \n\
|
|
\n\
|
|
if [[ "$1" == "-i" ]] \n\
|
|
then \n\
|
|
set ${line} \n\
|
|
\n\
|
|
echo "$5:$6" \n\
|
|
else \n\
|
|
echo "${line}" \n\
|
|
fi \n\
|
|
} \n\
|
|
\n\
|
|
export -f isl_top \n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
isl_cat() \n\
|
|
{ \n\
|
|
if [[ "$1" == "-r" ]] \n\
|
|
then \n\
|
|
tac ${ISL_FILE} \n\
|
|
else \n\
|
|
cat ${ISL_FILE} \n\
|
|
fi \n\
|
|
} \n\
|
|
\n\
|
|
export -f isl_cat \n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
isl_html_dump() \n\
|
|
{ \n\
|
|
r_flag="" \n\
|
|
i_flag="" \n\
|
|
\n\
|
|
while [[ $# -gt 0 ]] \n\
|
|
do \n\
|
|
if [[ "$1" == "-r" ]] \n\
|
|
then \n\
|
|
r_flag="$1" \n\
|
|
else \n\
|
|
if [[ "$1" == "-i" ]] \n\
|
|
then \n\
|
|
i_flag="-i" \n\
|
|
fi \n\
|
|
fi \n\
|
|
\n\
|
|
shift \n\
|
|
done \n\
|
|
\n\
|
|
i=1 \n\
|
|
\n\
|
|
isl_cat "${r_flag}" | while read line \n\
|
|
do \n\
|
|
set $line \n\
|
|
\n\
|
|
if [[ $(( $i % 2)) -eq 0 ]] \n\
|
|
then \n\
|
|
print "${i_flag}" ` <tr class="shade">` \n\
|
|
else \n\
|
|
print "${i_flag}" " <tr>" \n\
|
|
fi \n\
|
|
\n\
|
|
j=1 \n\
|
|
while [[ $j -lt 7 ]] \n\
|
|
do \n\
|
|
if [[ "$j" == "1" ]] \n\
|
|
then \n\
|
|
print "${i_flag}" " <th>${!j}</th>" \n\
|
|
else \n\
|
|
print "${i_flag}" " <td>${!j}</td>" \n\
|
|
fi \n\
|
|
\n\
|
|
j=$(( $j + 1)) \n\
|
|
done \n\
|
|
\n\
|
|
print "${i_flag}" " </tr>" \n\
|
|
i=$(( $i + 1)) \n\
|
|
done \n\
|
|
} \n\
|
|
\n\
|
|
export -f isl_html_dump \n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
alias ll="ls -la" \n\
|
|
alias em="emacs"'
|
|
#---------------------------------------------------------------------------------------------------
|
|
|
|
ARG MIRRORLIST_MGA='http://mirror.xor.rx3/mageia/distrib/9/x86_64 https://mirror.rx3.net/mageia/distrib/9/x86_64 ftp://ftp.proxad.net/mirrors/mageia.org/distrib/9/x86_64 http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/9/x86_64'
|
|
ARG MIRRORLIST_RX3='http://mirror.xor.rx3/rx3/distrib/9/x86_64 https://mirror.rx3.net/rx3/distrib/9/x86_64'
|
|
|
|
ARG GIT_MPM_REPO='https://git.rx3.org/gitea/Rx3/mpm/raw/tag/mpm-1.0.0'
|
|
|
|
|
|
|
|
RUN echo -e "${LOCALE_CONF}" | sed -e 's/ *$//' > /etc/locale.conf \
|
|
&& ln -s /usr/share/zoneinfo/${LOCALTIME} /etc/localtime \
|
|
&& urpmi.removemedia -a \
|
|
&& rm -f /var/cache/urpmi/mirrors.cache \
|
|
&& urpmi.addmedia --distrib --mirrorlist "${MIRRORLIST_MGA}" \
|
|
&& urpmi.addmedia --distrib --mirrorlist "${MIRRORLIST_RX3}" \
|
|
&& for arch in "" "32bit "; do for media in "Core" "Nonfree" "Tainted"; do for type in "Release" "Updates"; do urpmi.update --no-ignore "${media} ${arch}${type}"; done; done; done \
|
|
&& urpmi.update -a \
|
|
&& urpmi --force --replacepkgs glibc locales locales-en \
|
|
&& rpm -e $(rpm -qa | grep -e python -e dnf) gobject-introspection \
|
|
&& rpm -e lib64comps0 lib64gio2.0_0 lib64girepository1.0_1 lib64glib-gir2.0 lib64gpgme11 lib64modulemd2 lib64modulemd-gir2.0 lib64mpdec3 lib64nsl2 lib64repo0 lib64rpmsign9 lib64solv1 lib64yaml0_2 lib64zck1 \
|
|
&& urpmi --force --auto-update \
|
|
&& rm -f /var/log/dnf* /var/log/hawkey.log \
|
|
&& echo -e "${RX3_SH}" | sed -e "s/\`/'/g" -e 's/ *$//' >/etc/profile.d/rx3.sh \
|
|
&& . /etc/profile.d/rx3.sh && isl_add ${IMG_URL}
|
|
|
|
ADD ${GIT_MPM_REPO}/sbin/mpm /usr/local/sbin
|
|
ADD ${GIT_MPM_REPO}/etc/mpm.conf /etc
|
|
RUN chmod u+x /usr/local/sbin/mpm
|
|
|
|
#COPY usr/local/sbin/mpm /usr/local/sbin
|
|
#COPY etc/mpm.conf /etc
|
|
|
|
|
|
FROM scratch
|
|
|
|
ARG IMG_NAME
|
|
ARG IMG_NAME_FULL
|
|
ARG IMG_VERSION
|
|
ARG IMG_MAINTAINER
|
|
|
|
LABEL org.rx3.${IMG_NAME}.name=${IMG_NAME_FULL}
|
|
LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION}
|
|
LABEL org.rx3.${IMG_NAME}.maintainer=${IMG_MAINTAINER}
|
|
LABEL maintainer=${IMG_MAINTAINER}
|
|
|
|
|
|
COPY --from=0 / /
|
|
|
|
CMD ["/bin/bash"]
|
|
ENTRYPOINT []
|