Update Dockerfile and docker-compose

- Dockerfile now tracks the gitlab repository and the master branch.
- docker-compose now points to conduit.toml instead of Rocket.toml and
its env vars were also renamed from ROCKET_ to CONDUIT_.
Furthermore vectorim/riot-web was changed to vectorim/element-web
This commit is contained in:
Daniel Wiesenberg 2021-03-12 18:26:23 +01:00
parent 42c9ba2e5c
commit 52a96b3d84
4 changed files with 37 additions and 32 deletions

View file

@ -30,7 +30,7 @@ COPY . .
RUN if [[ $LOCAL == "true" ]]; then \ RUN if [[ $LOCAL == "true" ]]; then \
cargo install --path . ; \ cargo install --path . ; \
else \ else \
cargo install --git "https://github.com/timokoesters/conduit.git" --rev ${GIT_REF}; \ cargo install --git "https://gitlab.com/famedly/conduit.git" --rev ${GIT_REF}; \
fi fi
########################## RUNTIME IMAGE ########################## ########################## RUNTIME IMAGE ##########################
@ -40,7 +40,7 @@ FROM alpine:3.12
ARG CREATED ARG CREATED
ARG VERSION ARG VERSION
ARG GIT_REF=HEAD ARG GIT_REF=origin/master
# Labels according to https://github.com/opencontainers/image-spec/blob/master/annotations.md # Labels according to https://github.com/opencontainers/image-spec/blob/master/annotations.md
# including a custom label specifying the build command # including a custom label specifying the build command
@ -52,7 +52,7 @@ LABEL org.opencontainers.image.created=${CREATED} \
org.opencontainers.image.description="A Matrix homeserver written in Rust" \ org.opencontainers.image.description="A Matrix homeserver written in Rust" \
org.opencontainers.image.url="https://conduit.rs/" \ org.opencontainers.image.url="https://conduit.rs/" \
org.opencontainers.image.revision=${GIT_REF} \ org.opencontainers.image.revision=${GIT_REF} \
org.opencontainers.image.source="https://git.koesters.xyz/timo/conduit.git" \ org.opencontainers.image.source="https://gitlab.com/famedly/conduit.git" \
org.opencontainers.image.licenses="Apache-2.0" \ org.opencontainers.image.licenses="Apache-2.0" \
org.opencontainers.image.documentation="" \ org.opencontainers.image.documentation="" \
org.opencontainers.image.ref.name="" \ org.opencontainers.image.ref.name="" \

View file

@ -15,33 +15,35 @@ services:
# CREATED: # CREATED:
# VERSION: # VERSION:
# LOCAL: 'false' # LOCAL: 'false'
# GIT_REF: HEAD # GIT_REF: origin/master
restart: unless-stopped restart: unless-stopped
ports: ports:
- 8448:8000 - 8448:8000
volumes: volumes:
- db:/srv/conduit/.local/share/conduit - db:/srv/conduit/.local/share/conduit
### Uncomment if you want to use Rocket.toml to configure Conduit ### Uncomment if you want to use conduit.toml to configure Conduit
### Note: Set env vars will override Rocket.toml values ### Note: Set env vars will override conduit.toml values
# - ./Rocket.toml:/srv/conduit/Rocket.toml # - ./conduit.toml:/srv/conduit/conduit.toml
environment: environment:
ROCKET_SERVER_NAME: localhost:8000 # replace with your own name CONDUIT_SERVER_NAME: localhost:8000 # replace with your own name
### Uncomment and change values as desired ### Uncomment and change values as desired
# ROCKET_LOG: normal # Available levels are: off, debug, normal, critical # CONDUIT_ADDRESS: 127.0.0.1
# ROCKET_PORT: 8000 # CONDUIT_PORT: 8000
# ROCKET_REGISTRATION_DISABLED: 'true' # CONDUIT_LOG: normal # Available levels are: off, debug, normal, critical
# ROCKET_ENCRYPTION_DISABLED: 'true' # CONDUIT_ALLOW_JAEGER: 'false'
# ROCKET_FEDERATION_ENABLED: 'true' # CONDUIT_ALLOW_REGISTRATION : 'false'
# ROCKET_DATABASE_PATH: /srv/conduit/.local/share/conduit # CONDUIT_ALLOW_ENCRYPTION: 'false'
# ROCKET_WORKERS: 10 # CONDUIT_ALLOW_FEDERATION: 'false'
# ROCKET_MAX_REQUEST_SIZE: 20_000_000 # in bytes, ~20 MB # CONDUIT_DATABASE_PATH: /srv/conduit/.local/share/conduit
# CONDUIT_WORKERS: 10
# CONDUIT_MAX_REQUEST_SIZE: 20_000_000 # in bytes, ~20 MB
### Uncomment if you want to use your own Element-Web App. ### Uncomment if you want to use your own Element-Web App.
### Note: You need to provide a config.json for Element and you also need a second ### Note: You need to provide a config.json for Element and you also need a second
### Domain or Subdomain for the communication between Element and Conduit ### Domain or Subdomain for the communication between Element and Conduit
### Config-Docs: https://github.com/vector-im/element-web/blob/develop/docs/config.md ### Config-Docs: https://github.com/vector-im/element-web/blob/develop/docs/config.md
# element-web: # element-web:
# image: vectorim/riot-web:latest # image: vectorim/element-web:latest
# restart: unless-stopped # restart: unless-stopped
# ports: # ports:
# - 8009:80 # - 8009:80

View file

@ -17,13 +17,13 @@ The Dockerfile includes a few build arguments that should be supplied when build
ARG LOCAL=false ARG LOCAL=false
ARG CREATED ARG CREATED
ARG VERSION ARG VERSION
ARG GIT_REF=HEAD ARG GIT_REF=origin/master
``` ```
- **CREATED:** Date and time as string (date-time as defined by RFC 3339). Will be used to create the Open Container Initiative compliant label `org.opencontainers.image.created`. Supply by it like this `$(date -u +'%Y-%m-%dT%H:%M:%SZ')` - **CREATED:** Date and time as string (date-time as defined by RFC 3339). Will be used to create the Open Container Initiative compliant label `org.opencontainers.image.created`. Supply by it like this `$(date -u +'%Y-%m-%dT%H:%M:%SZ')`
- **VERSION:** The SemVer version of Conduit, which is in the image. Will be used to create the Open Container Initiative compliant label `org.opencontainers.image.version`. If you have a `Cargo.toml` in your build context, you can get it with `$(grep -m1 -o '[0-9].[0-9].[0-9]' Cargo.toml)` - **VERSION:** The SemVer version of Conduit, which is in the image. Will be used to create the Open Container Initiative compliant label `org.opencontainers.image.version`. If you have a `Cargo.toml` in your build context, you can get it with `$(grep -m1 -o '[0-9].[0-9].[0-9]' Cargo.toml)`
- **LOCAL:** *(Optional)* A boolean value, specifies if the local build context should be used, or if the official repository will be cloned. If not supplied with the build command, it will default to `false`. - **LOCAL:** *(Optional)* A boolean value, specifies if the local build context should be used, or if the official repository will be cloned. If not supplied with the build command, it will default to `false`.
- **GIT_REF:** *(Optional)* A git ref, like `HEAD` or a commit ID. The supplied ref will be used to create the Open Container Initiative compliant label `org.opencontainers.image.revision` and will be the ref that is cloned from the repository when not building from the local context. If not supplied with the build command, it will default to `HEAD`. - **GIT_REF:** *(Optional)* A git ref, like `HEAD` or a commit ID. The supplied ref will be used to create the Open Container Initiative compliant label `org.opencontainers.image.revision` and will be the ref that is cloned from the repository when not building from the local context. If not supplied with the build command, it will default to `origin/master`.
To build the image you can use the following command To build the image you can use the following command
@ -40,7 +40,7 @@ which also will tag the resulting image as `matrixconduit/matrix-conduit:latest`
After building the image you can simply run it with After building the image you can simply run it with
``` bash ``` bash
docker run -d -p 8448:8000 -v db:/srv/conduit/.local/share/conduit -e ROCKET_SERVER_NAME="localhost:8000" matrixconduit/matrix-conduit:latest docker run -d -p 8448:8000 -v db:/srv/conduit/.local/share/conduit -e CONDUIT_SERVER_NAME="localhost:8000" matrixconduit/matrix-conduit:latest
``` ```
For detached mode, you also need to use the `-d` flag. You can pass in more env vars as are shown here, for an overview of possible values, you can take a look at the `docker-compose.yml` file. For detached mode, you also need to use the `-d` flag. You can pass in more env vars as are shown here, for an overview of possible values, you can take a look at the `docker-compose.yml` file.

View file

@ -15,32 +15,35 @@ services:
# CREATED: # CREATED:
# VERSION: # VERSION:
# LOCAL: 'false' # LOCAL: 'false'
# GIT_REF: HEAD # GIT_REF: origin/master
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- db:/srv/conduit/.local/share/conduit - db:/srv/conduit/.local/share/conduit
### Uncomment if you want to use Rocket.toml to configure Conduit ### Uncomment if you want to use conduit.toml to configure Conduit
### Note: Set env vars will override Rocket.toml values ### Note: Set env vars will override conduit.toml values
# - ./Rocket.toml:/srv/conduit/Rocket.toml # - ./conduit.toml:/srv/conduit/conduit.toml
networks: networks:
- proxy - proxy
environment: environment:
ROCKET_SERVER_NAME: localhost:8000 # replace with your own name ROCKET_SERVER_NAME: localhost:8000 # replace with your own name
### Uncomment and change values as desired ### Uncomment and change values as desired
# ROCKET_LOG: normal # Available levels are: off, debug, normal, critical # CONDUIT_ADDRESS: 127.0.0.1
# ROCKET_PORT: 8000 # CONDUIT_PORT: 8000
# ROCKET_REGISTRATION_DISABLED: 'true' # CONDUIT_LOG: normal # Available levels are: off, debug, normal, critical
# ROCKET_ENCRYPTION_DISABLED: 'true' # CONDUIT_ALLOW_JAEGER: 'false'
# ROCKET_DATABASE_PATH: /srv/conduit/.local/share/conduit # CONDUIT_ALLOW_REGISTRATION : 'false'
# ROCKET_WORKERS: 10 # CONDUIT_ALLOW_ENCRYPTION: 'false'
# ROCKET_MAX_REQUEST_SIZE: 20_000_000 # in bytes, ~20 MB # CONDUIT_ALLOW_FEDERATION: 'false'
# CONDUIT_DATABASE_PATH: /srv/conduit/.local/share/conduit
# CONDUIT_WORKERS: 10
# CONDUIT_MAX_REQUEST_SIZE: 20_000_000 # in bytes, ~20 MB
### Uncomment if you want to use your own Element-Web App. ### Uncomment if you want to use your own Element-Web App.
### Note: You need to provide a config.json for Element and you also need a second ### Note: You need to provide a config.json for Element and you also need a second
### Domain or Subdomain for the communication between Element and Conduit ### Domain or Subdomain for the communication between Element and Conduit
### Config-Docs: https://github.com/vector-im/element-web/blob/develop/docs/config.md ### Config-Docs: https://github.com/vector-im/element-web/blob/develop/docs/config.md
# element-web: # element-web:
# image: vectorim/riot-web:latest # image: vectorim/element-web:latest
# restart: unless-stopped # restart: unless-stopped
# volumes: # volumes:
# - ./element_config.json:/app/config.json # - ./element_config.json:/app/config.json