Update Docker, INSTALL.md

This commit is contained in:
Neil Alexander 2020-10-20 14:32:49 +01:00
parent 374c11a718
commit 705339d098
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
9 changed files with 55 additions and 94 deletions

View file

@ -1,4 +1,4 @@
FROM docker.io/golang:1.13.7-alpine3.11 AS builder FROM docker.io/golang:1.15-alpine AS builder
RUN apk --update --no-cache add bash build-base RUN apk --update --no-cache add bash build-base

View file

@ -3,12 +3,12 @@ FROM matrixdotorg/dendrite:latest AS base
FROM alpine:latest FROM alpine:latest
ARG component=monolith ARG component=monolith
ENV entrypoint=${component}
COPY --from=base /build/bin/${component} /usr/bin COPY --from=base /build/bin/dendrite-monolith-server /usr/bin
COPY --from=base /build/bin/goose /usr/bin COPY --from=base /build/bin/goose /usr/bin
COPY --from=base /build/bin/create-account /usr/bin
VOLUME /etc/dendrite VOLUME /etc/dendrite
WORKDIR /etc/dendrite WORKDIR /etc/dendrite
ENTRYPOINT /usr/bin/${entrypoint} $@ ENTRYPOINT /usr/bin/dendrite-monolith-server $@

View file

@ -0,0 +1,14 @@
FROM matrixdotorg/dendrite:latest AS base
FROM alpine:latest
ARG component
COPY --from=base /build/bin/dendrite-polylith-multi /usr/bin
COPY --from=base /build/bin/goose /usr/bin
COPY --from=base /build/bin/create-account /usr/bin
VOLUME /etc/dendrite
WORKDIR /etc/dendrite
ENTRYPOINT /usr/bin/dendrite-polylith-multi $@

View file

@ -4,7 +4,6 @@ services:
hostname: monolith hostname: monolith
image: matrixdotorg/dendrite-monolith:latest image: matrixdotorg/dendrite-monolith:latest
command: [ command: [
"--config=dendrite.yaml",
"--tls-cert=server.crt", "--tls-cert=server.crt",
"--tls-key=server.key" "--tls-key=server.key"
] ]

View file

@ -2,10 +2,8 @@ version: "3.4"
services: services:
client_api: client_api:
hostname: client_api hostname: client_api
image: matrixdotorg/dendrite-clientapi:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: clientapi
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
- room_server - room_server
@ -14,10 +12,8 @@ services:
media_api: media_api:
hostname: media_api hostname: media_api
image: matrixdotorg/dendrite-mediaapi:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: mediaapi
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -25,10 +21,8 @@ services:
sync_api: sync_api:
hostname: sync_api hostname: sync_api
image: matrixdotorg/dendrite-syncapi:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: syncapi
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -36,10 +30,8 @@ services:
room_server: room_server:
hostname: room_server hostname: room_server
image: matrixdotorg/dendrite-roomserver:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: roomserver
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -47,10 +39,8 @@ services:
edu_server: edu_server:
hostname: edu_server hostname: edu_server
image: matrixdotorg/dendrite-eduserver:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: eduserver
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -58,10 +48,8 @@ services:
federation_api: federation_api:
hostname: federation_api hostname: federation_api
image: matrixdotorg/dendrite-federationapi:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: federationapi
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -69,10 +57,8 @@ services:
federation_sender: federation_sender:
hostname: federation_sender hostname: federation_sender
image: matrixdotorg/dendrite-federationsender:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: federationsender
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -80,10 +66,8 @@ services:
key_server: key_server:
hostname: key_server hostname: key_server
image: matrixdotorg/dendrite-keyserver:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: keyserver
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -91,10 +75,8 @@ services:
signing_key_server: signing_key_server:
hostname: signing_key_server hostname: signing_key_server
image: matrixdotorg/dendrite-signingkeyserver:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: signingkeyserver
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -102,10 +84,8 @@ services:
user_api: user_api:
hostname: user_api hostname: user_api
image: matrixdotorg/dendrite-userapi:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: userapi
"--config=dendrite.yaml"
]
volumes: volumes:
- ./config:/etc/dendrite - ./config:/etc/dendrite
networks: networks:
@ -113,8 +93,9 @@ services:
appservice_api: appservice_api:
hostname: appservice_api hostname: appservice_api
image: matrixdotorg/dendrite-appservice:latest image: matrixdotorg/dendrite-polylith:latest
command: [ command: [
"appservice",
"--config=dendrite.yaml" "--config=dendrite.yaml"
] ]
volumes: volumes:

View file

@ -8,16 +8,5 @@ echo "Building tag '${TAG}'"
docker build -f build/docker/Dockerfile -t matrixdotorg/dendrite:${TAG} . docker build -f build/docker/Dockerfile -t matrixdotorg/dendrite:${TAG} .
docker build -t matrixdotorg/dendrite-monolith:${TAG} --build-arg component=dendrite-monolith-server -f build/docker/Dockerfile.component . docker build -t matrixdotorg/dendrite-monolith:${TAG} -f build/docker/Dockerfile.monolith .
docker build -t matrixdotorg/dendrite-polylith:${TAG} -f build/docker/Dockerfile.polylith .
docker build -t matrixdotorg/dendrite-appservice:${TAG} --build-arg component=dendrite-appservice-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-clientapi:${TAG} --build-arg component=dendrite-client-api-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-eduserver:${TAG} --build-arg component=dendrite-edu-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-federationapi:${TAG} --build-arg component=dendrite-federation-api-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-federationsender:${TAG} --build-arg component=dendrite-federation-sender-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-keyserver:${TAG} --build-arg component=dendrite-key-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-mediaapi:${TAG} --build-arg component=dendrite-media-api-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-roomserver:${TAG} --build-arg component=dendrite-room-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-syncapi:${TAG} --build-arg component=dendrite-sync-api-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-signingkeyserver:${TAG} --build-arg component=dendrite-signing-key-server -f build/docker/Dockerfile.component .
docker build -t matrixdotorg/dendrite-userapi:${TAG} --build-arg component=dendrite-user-api-server -f build/docker/Dockerfile.component .

View file

@ -5,15 +5,4 @@ TAG=${1:-latest}
echo "Pulling tag '${TAG}'" echo "Pulling tag '${TAG}'"
docker pull matrixdotorg/dendrite-monolith:${TAG} docker pull matrixdotorg/dendrite-monolith:${TAG}
docker pull matrixdotorg/dendrite-polylith:${TAG}
docker pull matrixdotorg/dendrite-appservice:${TAG}
docker pull matrixdotorg/dendrite-clientapi:${TAG}
docker pull matrixdotorg/dendrite-eduserver:${TAG}
docker pull matrixdotorg/dendrite-federationapi:${TAG}
docker pull matrixdotorg/dendrite-federationsender:${TAG}
docker pull matrixdotorg/dendrite-keyserver:${TAG}
docker pull matrixdotorg/dendrite-mediaapi:${TAG}
docker pull matrixdotorg/dendrite-roomserver:${TAG}
docker pull matrixdotorg/dendrite-syncapi:${TAG}
docker pull matrixdotorg/dendrite-signingkeyserver:${TAG}
docker pull matrixdotorg/dendrite-userapi:${TAG}

View file

@ -5,15 +5,4 @@ TAG=${1:-latest}
echo "Pushing tag '${TAG}'" echo "Pushing tag '${TAG}'"
docker push matrixdotorg/dendrite-monolith:${TAG} docker push matrixdotorg/dendrite-monolith:${TAG}
docker push matrixdotorg/dendrite-polylith:${TAG}
docker push matrixdotorg/dendrite-appservice:${TAG}
docker push matrixdotorg/dendrite-clientapi:${TAG}
docker push matrixdotorg/dendrite-eduserver:${TAG}
docker push matrixdotorg/dendrite-federationapi:${TAG}
docker push matrixdotorg/dendrite-federationsender:${TAG}
docker push matrixdotorg/dendrite-keyserver:${TAG}
docker push matrixdotorg/dendrite-mediaapi:${TAG}
docker push matrixdotorg/dendrite-roomserver:${TAG}
docker push matrixdotorg/dendrite-syncapi:${TAG}
docker push matrixdotorg/dendrite-signingkeyserver:${TAG}
docker push matrixdotorg/dendrite-userapi:${TAG}

View file

@ -189,7 +189,7 @@ This is what implements CS API endpoints. Clients talk to this via the proxy in
order to send messages, create and join rooms, etc. order to send messages, create and join rooms, etc.
```bash ```bash
./bin/dendrite-client-api-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml clientapi
``` ```
### Sync server ### Sync server
@ -198,7 +198,7 @@ This is what implements `/sync` requests. Clients talk to this via the proxy
in order to receive messages. in order to receive messages.
```bash ```bash
./bin/dendrite-sync-api-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml syncapi
``` ```
### Media server ### Media server
@ -207,7 +207,7 @@ This implements `/media` requests. Clients talk to this via the proxy in
order to upload and retrieve media. order to upload and retrieve media.
```bash ```bash
./bin/dendrite-media-api-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml mediaapi
``` ```
### Federation API server ### Federation API server
@ -217,7 +217,7 @@ order to send transactions. This is only required if you want to support
federation. federation.
```bash ```bash
./bin/dendrite-federation-api-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml federationapi
``` ```
### Internal components ### Internal components
@ -230,7 +230,7 @@ contacted by other components. This includes the following components.
This is what implements the room DAG. Clients do not talk to this. This is what implements the room DAG. Clients do not talk to this.
```bash ```bash
./bin/dendrite-room-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml roomserver
``` ```
#### Federation sender #### Federation sender
@ -239,7 +239,7 @@ This sends events from our users to other servers. This is only required if
you want to support federation. you want to support federation.
```bash ```bash
./bin/dendrite-federation-sender-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml federationsender
``` ```
#### Appservice server #### Appservice server
@ -250,7 +250,7 @@ running locally. This is only required if you want to support running
application services on your homeserver. application services on your homeserver.
```bash ```bash
./bin/dendrite-appservice-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml appservice
``` ```
#### Key server #### Key server
@ -258,7 +258,7 @@ application services on your homeserver.
This manages end-to-end encryption keys for users. This manages end-to-end encryption keys for users.
```bash ```bash
./bin/dendrite-key-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml keyserver
``` ```
#### Signing key server #### Signing key server
@ -266,7 +266,7 @@ This manages end-to-end encryption keys for users.
This manages signing keys for servers. This manages signing keys for servers.
```bash ```bash
./bin/dendrite-signing-key-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml signingkeyserver
``` ```
#### EDU server #### EDU server
@ -274,7 +274,7 @@ This manages signing keys for servers.
This manages processing EDUs such as typing, send-to-device events and presence. Clients do not talk to This manages processing EDUs such as typing, send-to-device events and presence. Clients do not talk to
```bash ```bash
./bin/dendrite-edu-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml eduserver
``` ```
#### User server #### User server
@ -283,6 +283,6 @@ This manages user accounts, device access tokens and user account data,
amongst other things. amongst other things.
```bash ```bash
./bin/dendrite-user-api-server --config dendrite.yaml ./bin/dendrite-polylith-multi --config=dendrite.yaml userapi
``` ```