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.
|
||||
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**:
|
||||
|
||||
```bash
|
||||
@ -142,7 +145,35 @@ mkdir media
|
||||
|
||||
# Actually start Plume
|
||||
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
|
||||
|
||||
|
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