mirror of
https://github.com/penpot/penpot.git
synced 2025-05-05 11:55:53 +02:00
Merge pull request #2244 from penpot/niwinz-docker-devenv-aarch64
🎉 Make the devenv docker image multiplatform
This commit is contained in:
commit
36f30c611e
3 changed files with 84 additions and 14 deletions
|
@ -88,7 +88,7 @@
|
||||||
[{:keys [conn backend executor]} {:keys [::content ::expired-at ::touched-at] :as params}]
|
[{:keys [conn backend executor]} {:keys [::content ::expired-at ::touched-at] :as params}]
|
||||||
(us/assert ::storage-content content)
|
(us/assert ::storage-content content)
|
||||||
(px/with-dispatch executor
|
(px/with-dispatch executor
|
||||||
(let [id (uuid/next)
|
(let [id (uuid/random)
|
||||||
|
|
||||||
mdata (cond-> (get-metadata params)
|
mdata (cond-> (get-metadata params)
|
||||||
(satisfies? impl/IContentHash content)
|
(satisfies? impl/IContentHash content)
|
||||||
|
|
|
@ -5,8 +5,8 @@ ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
ENV NODE_VERSION=v16.17.0 \
|
ENV NODE_VERSION=v16.17.0 \
|
||||||
CLOJURE_VERSION=1.11.1.1149 \
|
CLOJURE_VERSION=1.11.1.1149 \
|
||||||
CLJKONDO_VERSION=2022.06.22 \
|
CLJKONDO_VERSION=2022.09.08 \
|
||||||
BABASHKA_VERSION=0.8.156 \
|
BABASHKA_VERSION=0.9.162 \
|
||||||
LANG=en_US.UTF-8 \
|
LANG=en_US.UTF-8 \
|
||||||
LC_ALL=en_US.UTF-8
|
LC_ALL=en_US.UTF-8
|
||||||
|
|
||||||
|
@ -103,8 +103,24 @@ RUN set -ex; \
|
||||||
; \
|
; \
|
||||||
rm -rf /var/lib/apt/lists/*;
|
rm -rf /var/lib/apt/lists/*;
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -eux; \
|
||||||
curl -LfsSo /tmp/openjdk.tar.gz https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.1%2B10/OpenJDK18U-jdk_x64_linux_hotspot_18.0.1_10.tar.gz; \
|
ARCH="$(dpkg --print-architecture)"; \
|
||||||
|
case "${ARCH}" in \
|
||||||
|
aarch64|arm64) \
|
||||||
|
ESUM='37ceaf232a85cce46bcccfd71839854e8b14bf3160e7ef72a676b9cae45ee8af'; \
|
||||||
|
BINARY_URL='https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.1%2B10/OpenJDK18U-jdk_aarch64_linux_hotspot_18.0.1_10.tar.gz'; \
|
||||||
|
;; \
|
||||||
|
amd64|x86_64) \
|
||||||
|
ESUM='16b1d9d75f22c157af04a1fd9c664324c7f4b5163c022b382a2f2e8897c1b0a2'; \
|
||||||
|
BINARY_URL='https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.1%2B10/OpenJDK18U-jdk_x64_linux_hotspot_18.0.1_10.tar.gz'; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
echo "Unsupported arch: ${ARCH}"; \
|
||||||
|
exit 1; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
|
curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
|
||||||
|
echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
|
||||||
mkdir -p /usr/lib/jvm/openjdk; \
|
mkdir -p /usr/lib/jvm/openjdk; \
|
||||||
cd /usr/lib/jvm/openjdk; \
|
cd /usr/lib/jvm/openjdk; \
|
||||||
tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
|
tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
|
||||||
|
@ -122,20 +138,33 @@ RUN set -ex; \
|
||||||
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -; \
|
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -; \
|
||||||
echo "deb http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" >> /etc/apt/sources.list.d/postgresql.list; \
|
echo "deb http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" >> /etc/apt/sources.list.d/postgresql.list; \
|
||||||
apt-get -qq update; \
|
apt-get -qq update; \
|
||||||
apt-get -qqy install postgresql-client-13; \
|
apt-get -qqy install postgresql-client-14; \
|
||||||
rm -rf /var/lib/apt/lists/*;
|
rm -rf /var/lib/apt/lists/*;
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
curl -LfsSo /tmp/nodejs.tar.xz https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-linux-x64.tar.xz; \
|
RUN set -eux; \
|
||||||
|
ARCH="$(dpkg --print-architecture)"; \
|
||||||
|
case "${ARCH}" in \
|
||||||
|
aarch64|arm64) \
|
||||||
|
BINARY_URL="https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-arm64.tar.xz"; \
|
||||||
|
;; \
|
||||||
|
amd64|x86_64) \
|
||||||
|
BINARY_URL="https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-x64.tar.xz"; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
echo "Unsupported arch: ${ARCH}"; \
|
||||||
|
exit 1; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
|
curl -LfsSo /tmp/nodejs.tar.xz ${BINARY_URL}; \
|
||||||
mkdir -p /usr/local/nodejs; \
|
mkdir -p /usr/local/nodejs; \
|
||||||
cd /usr/local/nodejs; \
|
cd /usr/local/nodejs; \
|
||||||
tar -xf /tmp/nodejs.tar.xz --strip-components=1; \
|
tar -xf /tmp/nodejs.tar.xz --strip-components=1; \
|
||||||
chown -R root /usr/local/nodejs; \
|
chown -R root /usr/local/nodejs; \
|
||||||
PATH="$PATH:/usr/local/nodejs/bin"; \
|
/usr/local/nodejs/bin/npm install -g yarn; \
|
||||||
/usr/local/nodejs/bin/npm install --location=global yarn; \
|
|
||||||
/usr/local/nodejs/bin/npm install --location=global svgo; \
|
|
||||||
rm -rf /tmp/nodejs.tar.xz;
|
rm -rf /tmp/nodejs.tar.xz;
|
||||||
|
|
||||||
|
# TODO: waiting for aarch64 build
|
||||||
# Install clj-kondo
|
# Install clj-kondo
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
curl -LfsSo /tmp/clj-kondo.zip https://github.com/borkdude/clj-kondo/releases/download/v$CLJKONDO_VERSION/clj-kondo-$CLJKONDO_VERSION-linux-amd64.zip; \
|
curl -LfsSo /tmp/clj-kondo.zip https://github.com/borkdude/clj-kondo/releases/download/v$CLJKONDO_VERSION/clj-kondo-$CLJKONDO_VERSION-linux-amd64.zip; \
|
||||||
|
@ -144,8 +173,21 @@ RUN set -ex; \
|
||||||
rm /tmp/clj-kondo.zip;
|
rm /tmp/clj-kondo.zip;
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
|
ARCH="$(dpkg --print-architecture)"; \
|
||||||
|
case "${ARCH}" in \
|
||||||
|
aarch64|arm64) \
|
||||||
|
BINARY_URL="https://github.com/babashka/babashka/releases/download/v$BABASHKA_VERSION/babashka-$BABASHKA_VERSION-linux-aarch64.tar.gz"; \
|
||||||
|
;; \
|
||||||
|
amd64|x86_64) \
|
||||||
|
BINARY_URL="https://github.com/babashka/babashka/releases/download/v$BABASHKA_VERSION/babashka-$BABASHKA_VERSION-linux-amd64.tar.gz"; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
echo "Unsupported arch: ${ARCH}"; \
|
||||||
|
exit 1; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
cd /tmp; \
|
cd /tmp; \
|
||||||
curl -LfsSo /tmp/babashka.tar.gz https://github.com/babashka/babashka/releases/download/v$BABASHKA_VERSION/babashka-$BABASHKA_VERSION-linux-amd64.tar.gz; \
|
curl -LfsSo /tmp/babashka.tar.gz ${BINARY_URL}; \
|
||||||
cd /usr/local/bin; \
|
cd /usr/local/bin; \
|
||||||
tar -xf /tmp/babashka.tar.gz; \
|
tar -xf /tmp/babashka.tar.gz; \
|
||||||
rm -rf /tmp/babashka.tar.gz;
|
rm -rf /tmp/babashka.tar.gz;
|
||||||
|
@ -153,7 +195,20 @@ RUN set -ex; \
|
||||||
|
|
||||||
# Install minio client
|
# Install minio client
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
wget -O /tmp/mc https://dl.min.io/client/mc/release/linux-amd64/mc; \
|
ARCH="$(dpkg --print-architecture)"; \
|
||||||
|
case "${ARCH}" in \
|
||||||
|
aarch64|arm64) \
|
||||||
|
BINARY_URL="https://dl.min.io/client/mc/release/linux-arm64/mc"; \
|
||||||
|
;; \
|
||||||
|
amd64|x86_64) \
|
||||||
|
BINARY_URL="https://dl.min.io/client/mc/release/linux-amd64/mc"; \
|
||||||
|
;; \
|
||||||
|
*) \
|
||||||
|
echo "Unsupported arch: ${ARCH}"; \
|
||||||
|
exit 1; \
|
||||||
|
;; \
|
||||||
|
esac; \
|
||||||
|
wget -O /tmp/mc ${BINARY_URL}; \
|
||||||
mv /tmp/mc /usr/local/bin/; \
|
mv /tmp/mc /usr/local/bin/; \
|
||||||
chmod +x /usr/local/bin/mc;
|
chmod +x /usr/local/bin/mc;
|
||||||
|
|
||||||
|
|
17
manage.sh
17
manage.sh
|
@ -23,7 +23,22 @@ function build-devenv {
|
||||||
echo "Building development image $DEVENV_IMGNAME:latest..."
|
echo "Building development image $DEVENV_IMGNAME:latest..."
|
||||||
|
|
||||||
pushd docker/devenv;
|
pushd docker/devenv;
|
||||||
docker build -t $DEVENV_IMGNAME:latest .
|
|
||||||
|
docker run --privileged --rm tonistiigi/binfmt --install all
|
||||||
|
docker buildx inspect penpot > /dev/null 2>&1;
|
||||||
|
|
||||||
|
if [ $? -eq 1 ]; then
|
||||||
|
docker buildx create --name=penpot --use
|
||||||
|
docker buildx inspect --bootstrap > /dev/null 2>&1;
|
||||||
|
else
|
||||||
|
docker buildx use penpot;
|
||||||
|
docker buildx inspect --bootstrap > /dev/null 2>&1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# docker build -t $DEVENV_IMGNAME:latest .
|
||||||
|
docker buildx build --platform linux/amd64,linux/arm64 --push -t $DEVENV_IMGNAME:latest .;
|
||||||
|
docker pull $DEVENV_IMGNAME:latest;
|
||||||
|
|
||||||
popd;
|
popd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue