diff --git a/Dockerfile b/Dockerfile index bb312ab142..79ee1f68c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,31 @@ # Builder -FROM node:alpine as builder +FROM node:10-alpine as builder -RUN apk add --no-cache git +# Support custom branches of the react-sdk and js-sdk. This also helps us build +# images of riot-web develop. +ARG USE_CUSTOM_SDKS=false +ARG REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" +ARG REACT_SDK_BRANCH="master" +ARG JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" +ARG JS_SDK_BRANCH="master" + +RUN apk add --no-cache git dos2unix WORKDIR /src -COPY package.json /src/package.json -RUN npm install - COPY . /src -RUN npm run build +RUN dos2unix /src/scripts/docker-link-repos.sh && sh /src/scripts/docker-link-repos.sh +RUN yarn install +RUN yarn build + +# Copy the config now so that we don't create another layer in the app image +RUN cp /src/config.sample.json /src/webapp/config.json # App FROM nginx:latest COPY --from=builder /src/webapp /app -COPY config.sample.json /app/config.json RUN rm -rf /usr/share/nginx/html \ && ln -s /app /usr/share/nginx/html diff --git a/scripts/docker-link-repos.sh b/scripts/docker-link-repos.sh new file mode 100644 index 0000000000..816b2e040c --- /dev/null +++ b/scripts/docker-link-repos.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +set -ex + +if [ $USE_CUSTOM_SDKS == false ] +then + echo "skipping react-sdk and js-sdk installs: USE_CUSTOM_SDKS is false" + exit 0 +fi + +echo "Linking js-sdk" +git clone $JS_SDK_REPO js-sdk +cd js-sdk +git checkout $JS_SDK_BRANCH +yarn link +yarn install +cd ../ + +echo "Linking react-sdk" +git clone $REACT_SDK_REPO react-sdk +cd react-sdk +git checkout $REACT_SDK_BRANCH +yarn link +yarn link matrix-js-sdk +yarn install +cd ../ + +echo "Setting up riot-web with react-sdk and js-sdk packages" +yarn link matrix-js-sdk +yarn link matrix-react-sdk