Files
base/Dockerfile

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/%m/%d %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 []