Update build process
This commit is contained in:
parent
9b9272c1d6
commit
d3a46da63b
5
Makefile
5
Makefile
|
@ -3,10 +3,7 @@ DEPS_IMAGE_NAME = "asonix/masto-deps"
|
|||
|
||||
masto: images push-images
|
||||
|
||||
all: pull-base deps push-deps images push-images
|
||||
|
||||
pull-base:
|
||||
./container/pull-containers.sh
|
||||
all: deps push-deps images push-images
|
||||
|
||||
deps:
|
||||
./container/build-images.sh container/Dockerfile-deps $(DEPS_IMAGE_NAME)
|
||||
|
|
70
container/Dockerfile-deps-arm64v8
Normal file
70
container/Dockerfile-deps-arm64v8
Normal file
|
@ -0,0 +1,70 @@
|
|||
FROM arm64v8/ubuntu:18.04
|
||||
|
||||
# Install Node
|
||||
ENV NODE_VER="12.11.1"
|
||||
ENV ARCH="arm64"
|
||||
RUN echo "Etc/UTC" > /etc/localtime && \
|
||||
apt update && \
|
||||
apt -y install wget python && \
|
||||
cd ~ && \
|
||||
wget https://nodejs.org/download/release/v$NODE_VER/node-v$NODE_VER-linux-$ARCH.tar.gz && \
|
||||
tar xf node-v$NODE_VER-linux-$ARCH.tar.gz && \
|
||||
rm node-v$NODE_VER-linux-$ARCH.tar.gz && \
|
||||
mv node-v$NODE_VER-linux-$ARCH /opt/node
|
||||
|
||||
# Install jemalloc
|
||||
ENV JE_VER="5.2.1"
|
||||
RUN apt update && \
|
||||
apt -y install make autoconf gcc g++ && \
|
||||
cd ~ && \
|
||||
wget https://github.com/jemalloc/jemalloc/archive/$JE_VER.tar.gz && \
|
||||
tar xf $JE_VER.tar.gz && \
|
||||
cd jemalloc-$JE_VER && \
|
||||
./autogen.sh && \
|
||||
./configure --prefix=/opt/jemalloc && \
|
||||
make -j$(nproc) > /dev/null && \
|
||||
make install_bin install_include install_lib
|
||||
|
||||
# Install ruby
|
||||
ENV RUBY_VER="2.6.5"
|
||||
ENV CPPFLAGS="-I/opt/jemalloc/include"
|
||||
ENV LDFLAGS="-L/opt/jemalloc/lib/"
|
||||
RUN apt update && \
|
||||
apt -y install build-essential \
|
||||
bison libyaml-dev libgdbm-dev libreadline-dev \
|
||||
libncurses5-dev libffi-dev zlib1g-dev libssl-dev && \
|
||||
cd ~ && \
|
||||
wget https://cache.ruby-lang.org/pub/ruby/${RUBY_VER%.*}/ruby-$RUBY_VER.tar.gz && \
|
||||
tar xf ruby-$RUBY_VER.tar.gz && \
|
||||
cd ruby-$RUBY_VER && \
|
||||
./configure --prefix=/opt/ruby \
|
||||
--with-jemalloc \
|
||||
--with-shared \
|
||||
--disable-install-doc && \
|
||||
ln -s /opt/jemalloc/lib/* /usr/lib/ && \
|
||||
make -j$(nproc) > /dev/null && \
|
||||
make install
|
||||
|
||||
ENV PATH="${PATH}:/opt/ruby/bin:/opt/node/bin"
|
||||
|
||||
RUN npm install -g yarn && \
|
||||
gem install bundler && \
|
||||
apt update && \
|
||||
apt -y install git libicu-dev libidn11-dev \
|
||||
libpq-dev libprotobuf-dev protobuf-compiler
|
||||
|
||||
# Add tini
|
||||
ENV TINI_VERSION="0.18.0"
|
||||
ENV TINI_ARCH="arm64"
|
||||
ADD https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-${TINI_ARCH} /tini
|
||||
ADD https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-${TINI_ARCH}.asc /tini.asc
|
||||
|
||||
RUN apt update && \
|
||||
apt -y --no-install-recommends install gpg gpg-agent dirmngr
|
||||
|
||||
RUN gpg --batch \
|
||||
--keyserver hkp://p80.pool.sks-keyservers.net:80 \
|
||||
--recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 && \
|
||||
gpg --batch --verify /tini.asc /tini
|
||||
|
||||
RUN chmod +rx /tini
|
|
@ -18,7 +18,7 @@ require_input() {
|
|||
require_input "$SOURCE" "Dockerfile"
|
||||
require_input "$TAG" "container tag"
|
||||
|
||||
ARCHITECTURES=('arm64v8' 'arm32v7' 'amd64')
|
||||
ARCHITECTURES=('arm64v8' 'amd64')
|
||||
|
||||
for architecture in "${ARCHITECTURES[@]}"; do
|
||||
cp "$SOURCE" "$SOURCE-$architecture"
|
||||
|
@ -36,7 +36,7 @@ for architecture in "${ARCHITECTURES[@]}"; do
|
|||
sed -i'' 's/amd64/arm64/g' "$SOURCE-$architecture" # for tini
|
||||
fi
|
||||
|
||||
docker build -f "$SOURCE-$architecture" -t "$TAG:$architecture" .
|
||||
docker build --pull --no-cache -f "$SOURCE-$architecture" -t "$TAG:$architecture" .
|
||||
|
||||
rm "$SOURCE-$architecture"
|
||||
done
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -xe
|
||||
|
||||
architectures=('arm64v8' 'arm32v7' 'amd64')
|
||||
|
||||
for architecture in "${architectures[@]}"; do
|
||||
if [ "$1" == "" ]; then
|
||||
docker pull "$architecture/ubuntu:18.04"
|
||||
else
|
||||
docker pull "$1:$architecture"
|
||||
fi
|
||||
done
|
|
@ -16,7 +16,7 @@ require_input() {
|
|||
|
||||
require_input "$TAG" "container tag"
|
||||
|
||||
ARCHITECTURES=('arm64v8' 'arm32v7' 'amd64')
|
||||
ARCHITECTURES=('arm64v8' 'amd64')
|
||||
|
||||
for arch in "${ARCHITECTURES[@]}"; do
|
||||
docker push "$TAG:$arch"
|
||||
|
|
Loading…
Reference in a new issue