Skip to content

Commit 276b195

Browse files
committed
Added rust alpine image
Signed-off-by: Roland Asmann <[email protected]>
1 parent af0aec5 commit 276b195

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

.github/workflows/build-images.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,9 @@ jobs:
206206
- lang: ruby34
207207
distro: alpine
208208

209+
- lang: rust1
210+
distro: alpine
211+
209212
- lang: rust1
210213
distro: debian
211214
base-image:

ci/images/alpine/Dockerfile.rust1

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# Base-image
2+
FROM rust:alpine3.22 AS base
3+
4+
ARG ALPINE_REPO
5+
ARG NODEJS_DIST_URL
6+
ARG NPM_REPO
7+
ARG PIP_CONFIG
8+
9+
ENV PATH=${PATH}:/usr/local/bin \
10+
PYTHONPATH=/opt/pypi
11+
12+
RUN set -e; \
13+
if [ -n "$ALPINE_REPO" ]; then \
14+
sed -i "s|https://dl-cdn.alpinelinux.org|$ALPINE_REPO|g" /etc/apk/repositories; \
15+
fi; \
16+
if [ -n "$NODEJS_DIST_URL" ]; then \
17+
export "NVM_NODEJS_ORG_MIRROR=$NODEJS_DIST_URL"; \
18+
printf "disturl=$NODEJS_DIST_URL\n" >> $HOME/.npmrc; \
19+
fi; \
20+
if [ -n "$NPM_REPO" ]; then \
21+
export "COREPACK_NPM_REGISTRY=$NPM_REPO"; \
22+
printf "registry=$NPM_REPO\n@jsr:registry=$NPM_REPO\n" >> $HOME/.npmrc; \
23+
fi; \
24+
if [ -n "$PIP_CONFIG" ]; then \
25+
mkdir $HOME/.pip/; \
26+
printf "$PIP_CONFIG" > $HOME/.pip/pip.conf; \
27+
fi; \
28+
apk update \
29+
&& apk add --no-cache \
30+
nodejs \
31+
npm \
32+
python3 \
33+
python3-dev \
34+
py3-pip \
35+
py3-virtualenv \
36+
&& npm install -g corepack \
37+
&& /usr/bin/python --version \
38+
&& /usr/bin/python -m pip install \
39+
--no-cache-dir \
40+
--target ${PYTHONPATH} \
41+
--upgrade \
42+
atom-tools \
43+
&& node -v \
44+
&& npm -v \
45+
&& rustc --version \
46+
&& cargo --version \
47+
&& rm -rf $HOME/.npmrc $HOME/.pip /var/cache/apk/* \
48+
&& if [ -n "$ALPINE_REPO" ]; then \
49+
sed -i "s|$ALPINE_REPO|https://dl-cdn.alpinelinux.org|g" /etc/apk/repositories; \
50+
fi
51+
52+
53+
54+
# cdxgen-image
55+
FROM base AS cdxgen
56+
57+
ENV CDXGEN_IN_CONTAINER=true \
58+
NODE_COMPILE_CACHE="/opt/cdxgen-node-cache" \
59+
PATH=${PATH}:${PYTHONPATH}/bin:/opt/cdxgen/node_modules/.bin
60+
61+
COPY . /opt/cdxgen
62+
63+
RUN set -e; \
64+
if [ -n "$ALPINE_REPO" ]; then \
65+
sed -i "s|https://dl-cdn.alpinelinux.org|$ALPINE_REPO|g" /etc/apk/repositories; \
66+
fi; \
67+
if [ -n "$NODEJS_DIST_URL" ]; then \
68+
export "NVM_NODEJS_ORG_MIRROR=$NODEJS_DIST_URL"; \
69+
printf "disturl=$NODEJS_DIST_URL\n" >> $HOME/.npmrc; \
70+
fi; \
71+
if [ -n "$NPM_REPO" ]; then \
72+
export "COREPACK_NPM_REGISTRY=$NPM_REPO"; \
73+
printf "registry=$NPM_REPO\n@jsr:registry=$NPM_REPO\n" >> $HOME/.npmrc; \
74+
fi; \
75+
if [ -n "$PIP_CONFIG" ]; then \
76+
mkdir $HOME/.pip/; \
77+
printf "$PIP_CONFIG" > $HOME/.pip/pip.conf; \
78+
fi; \
79+
cd /opt/cdxgen \
80+
&& corepack enable \
81+
&& corepack pnpm install:prod \
82+
&& corepack pnpm cache delete \
83+
&& npm uninstall -g corepack \
84+
&& apk del npm \
85+
&& mkdir -p ${NODE_COMPILE_CACHE} \
86+
&& node /opt/cdxgen/bin/cdxgen.js --help \
87+
&& rm -rf $HOME/.npmrc $HOME/.pip /root/.cache/node \
88+
&& chmod a-w -R /opt \
89+
&& if [ -n "$ALPINE_REPO" ]; then \
90+
sed -i "s|$ALPINE_REPO|https://dl-cdn.alpinelinux.org|g" /etc/apk/repositories; \
91+
fi
92+
93+
WORKDIR /app
94+
95+
ENTRYPOINT ["node", "/opt/cdxgen/bin/cdxgen.js"]

0 commit comments

Comments
 (0)