Add Dockerfile to build and run LibreTranslate as a Docker image. Also added a docker-compose.yml file to provide a reproducible way to run the Docker image. And finally added how to build and run the Docker image to the README.md. Tested with local deployment on port 5000 and public HTTPS deployment using a docker based nginx-proxy

This commit is contained in:
Vincent Emonet 2020-12-21 19:39:53 +01:00
parent fc9c1dc4a4
commit 46693f36c1
3 changed files with 47 additions and 0 deletions

14
Dockerfile Normal file
View file

@ -0,0 +1,14 @@
FROM python:3.8
RUN pip install --upgrade pip
# Avoid rebuilding this step if no changes to requirements.txt
COPY requirements.txt .
RUN pip install -r requirements.txt
# Copy everything in the container
# This expects the models submodule to be present
COPY . .
EXPOSE 5000
ENTRYPOINT [ "python", "main.py", "--host", "0.0.0.0" ]

View file

@ -51,6 +51,28 @@ python main.py [args]
Then open a web browser to http://localhost:5000
### Run with Docker
Make sure you cloned the `models` submodule before building the Docker image:
```bash
docker build -t libretranslate .
```
Run the built image:
```bash
docker run -it -p 5000:5000 libretranslate [args]
```
Or build and run using `docker-compose`:
```bash
docker-compose up -d --build
```
> Feel free to change the [`docker-compose.yml`](https://github.com/uav4geo/LibreTranslate/blob/main/docker-compose.yml) file to adapt it to your deployment needs, or use an extra `docker-compose.prod.yml` file for your deployment configuration.
## Arguments
| Argument | Description | Default |

11
docker-compose.yml Normal file
View file

@ -0,0 +1,11 @@
version: "3"
services:
libretranslate:
container_name: libretranslate
build: .
restart: unless-stopped
ports:
- 5000:5000
## Uncomment above command and define your args if necessary
# command: --ssl --ga-id MY-GA-ID --req-limit 100 --char-limit 500