Dockerfile update and some files restructure
This commit is contained in:
parent
4df4e94a7c
commit
bb48f7c36c
94
Dockerfile
94
Dockerfile
|
@ -1,38 +1,37 @@
|
||||||
FROM walkero/lha-on-docker as lha-image
|
FROM alpine/git:2.40.1 AS git-clone
|
||||||
# The ubuntu:latest tag points to the "latest LTS", since that's the version recommended for general use.
|
|
||||||
FROM ubuntu:latest
|
|
||||||
|
|
||||||
LABEL maintainer="Georgios Sokianos <walkero@gmail.com>"
|
RUN mkdir /repos; \
|
||||||
|
# git clone https://github.com/sba1/adtools /repos/adtools --depth 1; \
|
||||||
|
git clone https://github.com/AmigaLabs/adtools.git /repos/adtools --depth 1; \
|
||||||
|
git clone https://github.com/bminor/binutils-gdb /repos/binutils-gdb; \
|
||||||
|
git clone https://github.com/coreutils/coreutils /repos/coreutils; \
|
||||||
|
git clone https://github.com/coreutils/gnulib /repos/gnulib
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
ARG REPOS_PATH
|
|
||||||
ARG CLIB2_REPO
|
|
||||||
COPY --from=lha-image /usr/bin/lha /usr/bin/lha
|
|
||||||
|
|
||||||
WORKDIR /tmp
|
FROM ubuntu:latest AS builder
|
||||||
|
|
||||||
RUN dpkg --add-architecture i386 && apt-get update && apt-get -y --no-install-recommends install \
|
ENV AMIDEV_USER_ID=1000 \
|
||||||
ca-certificates \
|
AMIDEV_GROUP_ID=1000 \
|
||||||
curl \
|
PATH="/home/amidev/.local/bin:$PATH"
|
||||||
python2.7;
|
|
||||||
|
|
||||||
RUN ln -s /usr/bin/python2.7 /usr/bin/python; \
|
COPY --from=walkero/lha-on-docker /usr/bin/lha /usr/bin/lha
|
||||||
curl -fsSL https://bootstrap.pypa.io/pip/2.7/get-pip.py -o /tmp/get-pip.py && \
|
|
||||||
python get-pip.py && \
|
|
||||||
pip2 install --no-cache-dir argcomplete==1.12.3 mako; \
|
|
||||||
rm -rf /tmp/* /var/tmp/*;
|
|
||||||
|
|
||||||
RUN apt-get -y --no-install-recommends install \
|
ENV PACKAGES="\
|
||||||
autoconf \
|
autoconf \
|
||||||
automake \
|
automake \
|
||||||
autopoint \
|
autopoint \
|
||||||
bison \
|
bison \
|
||||||
|
bzip2 \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
dh-autoreconf \
|
dh-autoreconf \
|
||||||
flex \
|
flex \
|
||||||
g++-8 \
|
g++-10 \
|
||||||
gettext \
|
gettext \
|
||||||
git \
|
git \
|
||||||
gperf \
|
gperf \
|
||||||
|
gpg \
|
||||||
|
libfl2 \
|
||||||
libgmp-dev \
|
libgmp-dev \
|
||||||
libmpc3 \
|
libmpc3 \
|
||||||
libmpc-dev \
|
libmpc-dev \
|
||||||
|
@ -41,29 +40,48 @@ RUN apt-get -y --no-install-recommends install \
|
||||||
mc \
|
mc \
|
||||||
nano \
|
nano \
|
||||||
patch \
|
patch \
|
||||||
|
python3 \
|
||||||
rsync \
|
rsync \
|
||||||
texinfo \
|
texinfo \
|
||||||
|
wdiff \
|
||||||
wget \
|
wget \
|
||||||
xz-utils; \
|
xz-utils"
|
||||||
ln -s /usr/bin/g++-8 /usr/bin/g++; \
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get -y --no-install-recommends install ${PACKAGES}; \
|
||||||
|
ln -s /usr/bin/g++-10 /usr/bin/g++; \
|
||||||
rm /usr/bin/gcc; \
|
rm /usr/bin/gcc; \
|
||||||
ln -s /usr/bin/gcc-8 /usr/bin/gcc; \
|
ln -s /usr/bin/gcc-10 /usr/bin/gcc; \
|
||||||
git config --global user.email "walkero@gmail.com"; \
|
\
|
||||||
git config --global user.name "Georgios Sokianos";
|
ln -s /usr/bin/python3 /usr/bin/python; \
|
||||||
|
curl -fsSL https://bootstrap.pypa.io/pip/get-pip.py -o /tmp/get-pip.py && \
|
||||||
|
python /tmp/get-pip.py && \
|
||||||
|
pip3 install --no-cache-dir mako;
|
||||||
|
|
||||||
|
# Copy necessary repos from git-clone
|
||||||
# Add necessary repos
|
COPY --from=git-clone /repos/adtools /opt/adtools
|
||||||
ADD ${REPOS_PATH}/adtools /opt/adtools
|
COPY --from=git-clone /repos/binutils-gdb /opt/adtools/binutils/repo
|
||||||
ADD ${REPOS_PATH}/binutils-gdb /opt/adtools/binutils/repo
|
COPY --from=git-clone /repos/coreutils /opt/adtools/coreutils/repo
|
||||||
ADD ${REPOS_PATH}/coreutils /opt/adtools/coreutils/repo
|
COPY --from=git-clone /repos/gnulib /opt/adtools/gnulib/repo
|
||||||
ADD ${REPOS_PATH}/gnulib /opt/adtools/gnulib/repo
|
COPY ./scripts/build-gcc.sh /opt/adtools
|
||||||
ADD build-gcc.sh /opt/adtools
|
COPY ./scripts/setup-user.sh /setup-user.sh
|
||||||
|
COPY ./files/gcc-build/Makefile /opt/adtools/gcc-build/
|
||||||
ADD ${REPOS_PATH}/execsg_private_sdk /tmp/execsg_private_sdk
|
|
||||||
ADD ${REPOS_PATH}/newlib-53.77 /tmp/newlib
|
|
||||||
|
|
||||||
WORKDIR /opt/adtools
|
WORKDIR /opt/adtools
|
||||||
|
|
||||||
RUN git submodule init && \
|
RUN chmod +x /setup-user.sh ./build-gcc.sh; \
|
||||||
git submodule update && \
|
bash /setup-user.sh && rm /setup-user.sh; \
|
||||||
chmod +x build-gcc.sh
|
chown ${AMIDEV_USER_ID}:${AMIDEV_GROUP_ID} /opt -R;
|
||||||
|
|
||||||
|
# USER amidev
|
||||||
|
|
||||||
|
RUN git config --global --add safe.directory /opt/adtools; \
|
||||||
|
git config --global --add safe.directory /opt/adtools/binutils/repo; \
|
||||||
|
git config --global --add safe.directory /opt/adtools/coreutils/repo; \
|
||||||
|
git config --global --add safe.directory /opt/adtools/gnulib/repo; \
|
||||||
|
git config --global user.email "walkero@gmail.com"; \
|
||||||
|
git config --global user.name "Georgios Sokianos"; \
|
||||||
|
git submodule init && \
|
||||||
|
git submodule update;
|
||||||
|
|
||||||
|
# USER root
|
|
@ -1,9 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# This script compiles the native GCC environment
|
# This script compiles the native GCC environment
|
||||||
|
|
||||||
gild/bin/gild checkout binutils ${BINUTILS_VER} && \
|
gild/bin/gild checkout binutils ${BINUTILS_VER}
|
||||||
gild/bin/gild checkout gcc ${GCC_VER} && \
|
gild/bin/gild checkout gcc ${GCC_VER}
|
||||||
make -C native-build SDK_VERSION=53.34 CLIB2_REPO=afxgroup -j4
|
make -C native-build -j4
|
||||||
|
|
||||||
# Prepare coreutils 5.2 (disabled)
|
# Prepare coreutils 5.2 (disabled)
|
||||||
gild/bin/gild checkout coreutils 5.2
|
gild/bin/gild checkout coreutils 5.2
|
||||||
|
@ -21,6 +21,7 @@ cd /opt/adtools/native-build
|
||||||
# The following might fail on [ and need to run twice
|
# The following might fail on [ and need to run twice
|
||||||
make native-install
|
make native-install
|
||||||
|
|
||||||
make native-dist SDK_VERSION=53.34 CLIB2_REPO=afxgroup && \
|
make native-dist
|
||||||
make clib2-dist && \
|
make clib2-dist
|
||||||
|
make clib4-dist
|
||||||
mv adtools-os4-*.lha /gcc
|
mv adtools-os4-*.lha /gcc
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
existing_group=$(getent group "$AMIDEV_GROUP_ID" | cut -d: -f1);
|
||||||
|
if [[ -n "$existing_group" ]]; then
|
||||||
|
delgroup "$existing_group"
|
||||||
|
fi
|
||||||
|
|
||||||
|
existing_user=$(getent passwd "$AMIDEV_USER_ID" | cut -d: -f1);
|
||||||
|
if [[ -n "$existing_user" ]]; then
|
||||||
|
deluser "$existing_user"
|
||||||
|
fi
|
||||||
|
|
||||||
|
addgroup --gid $AMIDEV_GROUP_ID amidev
|
||||||
|
adduser --system --uid $AMIDEV_USER_ID --disabled-password --shell /bin/bash --gid $AMIDEV_GROUP_ID amidev
|
||||||
|
|
||||||
|
sed -i '/^amidev/s/!/*/' /etc/shadow;
|
||||||
|
|
||||||
|
|
||||||
|
BASHFILE=/home/amidev/.bashrc
|
||||||
|
|
||||||
|
cp ~/.bashrc /home/amidev/
|
||||||
|
chown amidev:amidev $BASHFILE
|
||||||
|
|
||||||
|
sed -i '4c\'"\nparse_git_branch() {\n\
|
||||||
|
git branch 2> /dev/null | sed -e \'/^[^*]/d\' -e \'s/* \\\(.*\\\)/ (\\\1)/\'\n\
|
||||||
|
}\n" $BASHFILE
|
||||||
|
|
||||||
|
sed -i '43c\'"force_color_prompt=yes" $BASHFILE
|
||||||
|
|
||||||
|
sed -i '57c\'" PS1=\'\${debian_chroot:+(\$debian_chroot)}\\\[\\\033[01;32m\\\]\\\u@\\\h\\\[\\\033[00m\\\]:\\\[\\\033[01;34m\\\]\\\w\\\[\\\033[01;31m\\\]\$(parse_git_branch)\\\[\\\033[00m\\\]\\\$ '" $BASHFILE
|
||||||
|
|
||||||
|
sed -i '59c\'" PS1=\'\${debian_chroot:+(\$debian_chroot)}\\\u@\\\h:\\\w \$(parse_git_branch)\$ \'" $BASHFILE
|
||||||
|
|
||||||
|
sed -i '3c\'"\nexport PATH=${PATH}\n" $BASHFILE
|
Loading…
Reference in New Issue