You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
5.2 KiB
Docker
150 lines
5.2 KiB
Docker
1 year ago
|
FROM arm64v8/ubuntu:22.04
|
||
|
|
||
|
RUN yes | unminimize
|
||
|
|
||
|
RUN apt-get -y update && apt-get -y install locales
|
||
|
|
||
|
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
|
||
|
locale-gen
|
||
|
|
||
|
ENV LANG=C.UTF-8
|
||
|
ENV LANGUAGE=en_AU:en
|
||
|
ENV LC_CTYPE="C.UTF-8"
|
||
|
ENV LC_NUMERIC=en_US.UTF-8
|
||
|
ENV LC_TIME=en_US.UTF-8
|
||
|
ENV LC_COLLATE="C.UTF-8"
|
||
|
ENV LC_MONETARY=en_US.UTF-8
|
||
|
ENV LC_MESSAGES="C.UTF-8"
|
||
|
ENV LC_PAPER=en_US.UTF-8
|
||
|
ENV LC_NAME=en_US.UTF-8
|
||
|
ENV LC_ADDRESS=en_US.UTF-8
|
||
|
ENV LC_TELEPHONE=en_US.UTF-8
|
||
|
ENV LC_MEASUREMENT=en_US.UTF-8
|
||
|
ENV LC_IDENTIFICATION=en_US.UTF-8
|
||
|
ENV TZ=Europe/Amsterdam
|
||
|
|
||
|
RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install \
|
||
|
man-db jq curl git pwgen build-essential libjansson-dev \
|
||
|
libtiff-dev libgif-dev ffmpeg libffi-dev xutils-dev \
|
||
|
libxpm-dev libpng-dev zlib1g-dev libgmp-dev autoconf pkg-config \
|
||
|
p11-kit libp11-kit-dev nettle-dev libgnutls28-dev libtool \
|
||
|
libncurses-dev bash cmake htop net-tools dnsutils libgtk-3-dev wget \
|
||
|
libmagickwand-dev imagemagick libacl1-dev libxml2-dev
|
||
|
|
||
|
|
||
|
RUN wget https://ftp.gnu.org/gnu/emacs/emacs-28.1.tar.gz \
|
||
|
-O /tmp/emacs.tar.gz
|
||
|
|
||
|
WORKDIR /tmp/emacs
|
||
|
|
||
|
RUN tar --strip-components=1 -xf /tmp/emacs.tar.gz
|
||
|
|
||
|
|
||
|
RUN ./configure
|
||
|
|
||
|
RUN sed -i 's!static unsigned char sigsegv_stack\[SIGSTKSZ\]!static max_align_t sigsegv_stack\[(64 * 1024 + sizeof (max_align_t) - 1) / sizeof (max_align_t)\]!g' ./src/sysdep.c
|
||
|
|
||
|
RUN make install
|
||
|
|
||
|
RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install \
|
||
|
libreadline8 bash-completion sudo tzdata
|
||
|
|
||
|
RUN apt-get update && apt-get -y install \
|
||
|
php8.1-memcached \
|
||
|
php-redis \
|
||
|
php8.1-bcmath \
|
||
|
php8.1-bz2 \
|
||
|
php8.1-cli \
|
||
|
php8.1-common \
|
||
|
php8.1-curl \
|
||
|
php8.1-gmp \
|
||
|
php8.1-intl \
|
||
|
php-json \
|
||
|
php8.1-mbstring \
|
||
|
php8.1-mysql \
|
||
|
php8.1-odbc \
|
||
|
php8.1-opcache \
|
||
|
php8.1-pgsql \
|
||
|
php8.1-readline \
|
||
|
php8.1-tidy \
|
||
|
php8.1-xml \
|
||
|
php8.1-xsl \
|
||
|
php8.1-zip \
|
||
|
php8.1-gd \
|
||
|
php-bcmath \
|
||
|
php-apcu \
|
||
|
php-cli \
|
||
|
php-imagick \
|
||
|
composer \
|
||
|
php-xdebug
|
||
|
|
||
|
|
||
|
run mkdir -p /opt/nodejs
|
||
|
RUN curl --location "https://nodejs.org/dist/v17.8.0/node-v17.8.0-linux-x64.tar.xz" | tar -Jxf - --strip-components=1 -C /opt/nodejs/
|
||
|
# Make nodejs dir world-writable. This shouldn't be a problem as the container
|
||
|
# will, naturally only have a single user that has acces to the volume.
|
||
|
RUN chmod -R 777 /opt/nodejs
|
||
|
|
||
|
RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install \
|
||
|
ca-certificates curl gnupg lsb-release
|
||
|
|
||
|
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
|
||
|
&& echo \
|
||
|
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
|
||
|
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||
|
|
||
|
RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install docker-ce-cli apt-file
|
||
|
RUN apt-file update
|
||
|
|
||
|
RUN curl -fsSL https://github.com/drone/drone-cli/releases/latest/download/drone_linux_arm64.tar.gz \
|
||
|
| tar -xzf - -C /usr/bin/
|
||
|
|
||
|
|
||
|
RUN curl --location "https://golang.org/dl/go1.18.linux-arm64.tar.gz" | tar -xzf - -C /usr/local/
|
||
|
#RUN ln -s /usr/local/go/bin/* /usr/local/bin/
|
||
|
|
||
|
RUN GOPATH=/usr/local/gopkg /bin/bash -c 'for package in \
|
||
|
golang.org/x/tools/cmd/...@latest \
|
||
|
golang.org/x/tools/gopls@latest \
|
||
|
github.com/dougm/goflymake@latest \
|
||
|
golang.org/x/tools/cmd/goimports@latest; do \
|
||
|
/usr/local/go/bin/go install "$package"; done'
|
||
|
|
||
|
# RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install openjdk-17-jdk openjfx
|
||
|
|
||
|
# RUN wget https://downloads.gradle-dn.com/distributions/gradle-7.4.2-bin.zip -O /tmp/gradle.zip
|
||
|
# RUN unzip -d /opt/ /tmp/gradle.zip
|
||
|
# RUN rm /tmp/gradle.zip
|
||
|
# RUN ln -sf /opt/gradle-7.4.2/bin/gradle /usr/bin/gradle
|
||
|
|
||
|
# RUN mkdir -p /opt/maven
|
||
|
# RUN wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz -O - |\
|
||
|
# tar -C /opt/maven --strip-components=1 -xzf -
|
||
|
# RUN ln -s /opt/maven/bin/mvn /usr/bin/mvn
|
||
|
|
||
|
# RUN wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip -O /tmp/sonar-scanner.zip
|
||
|
# RUN unzip -d /opt/ /tmp/sonar-scanner.zip
|
||
|
# RUN rm /tmp/sonar-scanner.zip
|
||
|
# RUN ln -s /opt/sonar-scanner-4.7.0.2747-linux/bin/sonar-scanner /usr/bin/sonar-scanner
|
||
|
|
||
|
# Protobuf
|
||
|
RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install protobuf-compiler
|
||
|
|
||
|
RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install html2text wkhtmltopdf pandoc ispell idutch irussian ienglish-common
|
||
|
|
||
|
RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install mariadb-client
|
||
|
|
||
|
RUN curl -L https://github.com/storj/storj/releases/latest/download/uplink_linux_arm64.zip -o uplink_linux_arm64.zip && \
|
||
|
unzip -o uplink_linux_arm64.zip && \
|
||
|
install uplink /usr/local/bin/uplink
|
||
|
|
||
|
RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
|
||
|
RUN apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install symfony-cli
|
||
|
|
||
|
ADD . /opt/workspace-repo
|
||
|
WORKDIR /opt/workspace-repo
|
||
|
RUN /usr/local/go/bin/go build .
|
||
|
RUN cp ./workspace /bin/workspace
|
||
|
|
||
|
ENTRYPOINT [ "/bin/workspace", "entrypoint" ]
|