|
| 1 | +FROM node:16 AS node_builder |
| 2 | + |
| 3 | +WORKDIR /app |
| 4 | +ENV NODE_ENV=development |
| 5 | +COPY *.json ./ |
| 6 | +COPY ./res ./res |
| 7 | +COPY ./src ./src |
| 8 | +RUN npm install && \ |
| 9 | + npm run build |
| 10 | + |
| 11 | +######################################### |
| 12 | + |
| 13 | +FROM maven:3-openjdk-8 AS java_builder |
| 14 | + |
| 15 | +RUN mkdir -p /app && \ |
| 16 | + cd /app && \ |
| 17 | + git clone https://github.com/bazaarvoice/jolt.git && \ |
| 18 | + cd jolt && \ |
| 19 | + mvn clean package |
| 20 | +WORKDIR /app |
| 21 | + |
| 22 | +######################################### |
| 23 | + |
| 24 | +FROM ruby:3.2.2-alpine |
| 25 | +LABEL org.opencontainers.image.authors="Christoph Fabianek <christoph@ownyourdata.eu>" |
| 26 | + |
| 27 | +COPY docker/local-gem/*.gem /tmp/ |
| 28 | + |
| 29 | +RUN addgroup -S user && \ |
| 30 | + adduser -S user -G user && \ |
| 31 | + apk add --no-cache vim libsodium-dev git make gcc musl-dev jq npm openjdk8 bash curl py3-pip && \ |
| 32 | + gem install /tmp/*.gem && \ |
| 33 | + gem install httparty ed25519 multibases multihashes multicodecs json-canonicalization optparse rbnacl dag uri && \ |
| 34 | + gem install securerandom -v 0.1.1 && \ |
| 35 | + apk del make gcc musl-dev && \ |
| 36 | + apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python && \ |
| 37 | + pip3 install --no-cache --upgrade pip setuptools pytest requests pytest-subprocess --break-system-packages && \ |
| 38 | + wget https://raw.githubusercontent.com/OwnYourData/oydid/main/cli/oydid.rb -O /usr/local/bin/oydid && \ |
| 39 | + chmod 755 /usr/local/bin/oydid && \ |
| 40 | + mkdir -p /usr/src/app/jolt |
| 41 | + |
| 42 | +COPY --chown=user:user --from=node_builder /app/dist /usr/src/app/dist |
| 43 | +COPY --chown=user:user --from=node_builder /app/res /usr/src/app/res |
| 44 | +COPY --chown=user:user --from=node_builder /app/*.json /usr/src/app/ |
| 45 | +COPY --chown=user:user --from=java_builder /app/jolt/cli/target/jolt-cli-0.1.9-SNAPSHOT.jar /usr/src/app/jolt |
| 46 | +WORKDIR /usr/src/app |
| 47 | +COPY ./docker/start.sh /usr/local/bin/start.sh |
| 48 | +COPY --chown=user:user ./docker ./docker |
| 49 | +RUN npm install --only=prod && \ |
| 50 | + npm run bin && \ |
| 51 | + chown -R user:user /usr/src/app && \ |
| 52 | + sed -e "s/\${soya}/`soya --version`/" -e "s/\${jq}/`jq --version`/" docker/welcome.txt > /etc/motd && \ |
| 53 | + ln -s /usr/src/app/docker/jolt /usr/local/bin |
| 54 | + |
| 55 | +USER user |
| 56 | +WORKDIR /home/user |
| 57 | +CMD ["/usr/local/bin/start.sh"] |
| 58 | + |
0 commit comments