Merge pull request #194 from EliotBerriot/docker-install
Sample compose file and Dockerfile for deployment
This commit is contained in:
commit
e12d3fdc2f
5
.dockerignore
Normal file
5
.dockerignore
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
docs
|
||||||
|
data
|
||||||
|
Dockerfile
|
||||||
|
docker-compose.yml
|
||||||
|
.env
|
20
Dockerfile
Normal file
20
Dockerfile
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
FROM rust:1-stretch
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
gettext \
|
||||||
|
postgresql-client \
|
||||||
|
libpq-dev \
|
||||||
|
git \
|
||||||
|
curl \
|
||||||
|
gcc \
|
||||||
|
make \
|
||||||
|
openssl \
|
||||||
|
libssl-dev
|
||||||
|
WORKDIR /app
|
||||||
|
COPY Cargo.toml Cargo.lock ./
|
||||||
|
RUN cargo install diesel_cli --no-default-features --features postgres --version '=1.2.0'
|
||||||
|
COPY . .
|
||||||
|
RUN cargo build
|
||||||
|
RUN rm -rf target/debug/incremental
|
||||||
|
CMD ["cargo", "run"]
|
||||||
|
EXPOSE 7878
|
@ -17,6 +17,9 @@ All the following instructions will need a terminal.
|
|||||||
Here are the commands to install PostgreSQL and GetText on various operating systems.
|
Here are the commands to install PostgreSQL and GetText on various operating systems.
|
||||||
Some of them may need root permissions.
|
Some of them may need root permissions.
|
||||||
|
|
||||||
|
You can also install the project using Docker and docker-compose, please refer
|
||||||
|
to the `Docker install` section.
|
||||||
|
|
||||||
On **Debian**:
|
On **Debian**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -142,7 +145,35 @@ mkdir media
|
|||||||
|
|
||||||
# Actually start Plume
|
# Actually start Plume
|
||||||
cargo run
|
cargo run
|
||||||
|
|
||||||
|
## Docker install
|
||||||
|
|
||||||
|
You can use Docker and docker-compose in order to manage your Plume instance and
|
||||||
|
have it isolated from your host:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
git clone git@github.com:Plume-org/Plume.git
|
||||||
|
cd Plume
|
||||||
|
cp docs/docker-compose.sample.yml docker-compose.yml
|
||||||
|
cp docs/docker.sample.env .env
|
||||||
|
# build the containers
|
||||||
|
docker-compose build
|
||||||
|
# launch the database
|
||||||
|
docker-compose up -d postgres
|
||||||
|
# run the migrations
|
||||||
|
docker-compose run --rm plume diesel migration run
|
||||||
|
# run interactive setup
|
||||||
|
docker-compose run --rm plume bash
|
||||||
|
cargo run
|
||||||
|
# copy the env file and paste it in your host .env file
|
||||||
|
cat .env
|
||||||
|
# leave the container
|
||||||
|
exit
|
||||||
|
# launch your instance for good
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, you can configure your reverse proxy.
|
||||||
|
|
||||||
## Configuring Nginx
|
## Configuring Nginx
|
||||||
|
|
||||||
|
18
docs/docker-compose.sample.yml
Normal file
18
docs/docker-compose.sample.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:10.5
|
||||||
|
env_file: .env
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- "./data/postgres:/var/lib/postgresql/data"
|
||||||
|
plume:
|
||||||
|
build: .
|
||||||
|
env_file: .env
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- "./data/plume/static/media:/app/media"
|
||||||
|
- "./.env:/app/.env"
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:7878:7878"
|
12
docs/docker.sample.env
Normal file
12
docs/docker.sample.env
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
BASE_URL=yourdomain.com
|
||||||
|
# generate one with openssl rand -base64 45
|
||||||
|
ROCKET_SECRET_KEY=randomstringhere
|
||||||
|
|
||||||
|
# you can safely leave those defaults
|
||||||
|
POSTGRES_USER=plume
|
||||||
|
POSTGRES_PASSWORD=plume
|
||||||
|
DB_URL=postgres://plume:plume@postgres:5432/plume
|
||||||
|
DATABASE_URL=postgres://plume:plume@postgres:5432/plume
|
||||||
|
USE_HTTPS=1
|
||||||
|
ROCKET_ADDRESS=0.0.0.0
|
||||||
|
ROCKET_PORT=7878
|
Loading…
Reference in New Issue
Block a user