Merge pull request #9632 from vector-im/travis/dockerfile-release
Add Dockerfile
This commit is contained in:
commit
818bab9fa4
|
@ -0,0 +1,11 @@
|
|||
# Exclude a bunch of stuff which can make the build context a larger than it needs to be
|
||||
.git/
|
||||
test/
|
||||
webapp/
|
||||
lib/
|
||||
node_modules/
|
||||
electron_app/
|
||||
karma-reports/
|
||||
.idea/
|
||||
.tmp/
|
||||
config.json*
|
|
@ -0,0 +1,31 @@
|
|||
# Builder
|
||||
FROM node:10-alpine as builder
|
||||
|
||||
# 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 . /src
|
||||
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
|
||||
|
||||
RUN rm -rf /usr/share/nginx/html \
|
||||
&& ln -s /app /usr/share/nginx/html
|
36
README.md
36
README.md
|
@ -253,6 +253,42 @@ To change the config.json for the desktop app, create a config file which will b
|
|||
|
||||
In the paths above, `$NAME` is typically `Riot`, unless you use `--profile $PROFILE` in which case it becomes `Riot-$PROFILE`.
|
||||
|
||||
Running from Docker
|
||||
===================
|
||||
|
||||
The Docker image can be used to serve riot-web as a web server. The easiest way to use
|
||||
it is to use the prebuilt image:
|
||||
```bash
|
||||
docker run -p 80:80 vectorim/riot-web
|
||||
```
|
||||
|
||||
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
|
||||
if your custom config was located at `/etc/riot-web/config.json` then your Docker command
|
||||
would be:
|
||||
```bash
|
||||
docker run -p 80:80 -v /etc/riot-web/config.json:/app/config.json vectorim/riot-web
|
||||
```
|
||||
|
||||
To build the image yourself:
|
||||
```bash
|
||||
git clone https://github.com/vector-im/riot-web.git riot-web
|
||||
cd riot-web
|
||||
git checkout master
|
||||
docker build -t vectorim/riot-web .
|
||||
```
|
||||
|
||||
If you're building a custom branch, or want to use the develop branch, check out the appropriate
|
||||
riot-web branch and then run:
|
||||
```bash
|
||||
docker build -t vectorim/riot-web:develop \
|
||||
--build-arg USE_CUSTOM_SDKS=true \
|
||||
--build-arg REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" \
|
||||
--build-arg REACT_SDK_BRANCH="develop" \
|
||||
--build-arg JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" \
|
||||
--build-arg JS_SDK_BRANCH="develop" \
|
||||
.
|
||||
```
|
||||
|
||||
Labs Features
|
||||
=============
|
||||
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue