148 lines
3.1 KiB
Markdown
148 lines
3.1 KiB
Markdown
|
|
# ERPLibre - Docker
|
|
|
|
Those images are prepared to permit better portability and reproducibility of ERPLibre release.
|
|
|
|
Due the growing code of ERPLibre, it could also simplify development.
|
|
|
|
NOTE: Those Dockerfiles themselves are in heavy development for now. Incompatibilities between releases are normal until the interface is stabilized.
|
|
|
|
## Pre-requirements
|
|
|
|
- Basic knowledge with Docker, Linux and bash
|
|
- Latest Docker version
|
|
|
|
## Files representations
|
|
|
|
- Dockerfile.base: This Dockerfile represents the base Docker image layer reused by other child layers.
|
|
- Dockerfile.dev: This Dockerfile is specialized in development.
|
|
- Dockerfile.prod{pkg,src}: Dockerfile.prod.\* is a Docker image specialized for production systems. Dockerfile.prod.pkg reuses official Debian files from Odoo.com. Dockerfile.prod.src fetches the Odoo source code as the ERPLibre runtime.
|
|
|
|
## Getting started
|
|
|
|
Be sure to start daemon docker
|
|
|
|
```bash
|
|
systemctl start docker
|
|
```
|
|
|
|
### Building the docker images
|
|
|
|
```bash
|
|
cd docker
|
|
docker build -f Dockerfile.base -t technolibre/erplibre-base:12.0 .
|
|
docker build -f Dockerfile.prod.pkg -t technolibre/erplibre:12.0-pkg .
|
|
```
|
|
|
|
### Running ERPLibre using Docker-Compose
|
|
|
|
Go at the root of this git project.
|
|
|
|
```bash
|
|
cd ERPLibre
|
|
docker compose -f docker-compose.yml up -d
|
|
```
|
|
|
|
### Diagnostic Docker-Compose
|
|
|
|
Show docker-compose information
|
|
|
|
```bash
|
|
docker compose ps
|
|
docker compose logs IMAGE_NAME
|
|
```
|
|
|
|
Show docker information
|
|
|
|
```bash
|
|
docker ps -a
|
|
docker volume ls
|
|
docker inspect DOCKER_NAME
|
|
```
|
|
|
|
Connect to a running docker
|
|
|
|
```bash
|
|
docker exec -ti DOCKER_NAME bash
|
|
docker exec -u root -ti DOCKER_NAME bash
|
|
```
|
|
|
|
Commands for debugging
|
|
|
|
```bash
|
|
docker run -p 8069:8069 --entrypoint bash -ti DOCKER_NAME
|
|
docker exec -ti DOCKER_NAME bash
|
|
docker exec -u root -ti DOCKER_NAME bash
|
|
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_USER=odoo -e POSTGRES_DB=postgres postgre
|
|
|
|
export
|
|
db_host = "host.docker.internal"
|
|
|
|
docker stats erplibre_ERPLibre_1
|
|
```
|
|
|
|
### Cleaning
|
|
|
|
Delete all system
|
|
|
|
```bash
|
|
docker system prune -a
|
|
```
|
|
|
|
Delete docker image
|
|
|
|
```bash
|
|
docker image prune
|
|
docker rmi $(docker images -q)
|
|
```
|
|
|
|
Delete volumes
|
|
|
|
```bash
|
|
docker compose rm -v
|
|
```
|
|
|
|
Delete containers
|
|
|
|
```bash
|
|
docker rm $(docker ps -a | grep -v IMAGE | awk '{print $1}')
|
|
```
|
|
|
|
Delete volume
|
|
|
|
```bash
|
|
docker volume prune
|
|
```
|
|
|
|
# Change docker directory
|
|
You can change the docker directory by editing file `/etc/docker/daemon.json`
|
|
|
|
```json
|
|
{
|
|
"data-root": "/home/docker"
|
|
}
|
|
```
|
|
|
|
And restart docker service. You can delete or move all older locations of docker.
|
|
|
|
Or
|
|
|
|
Add `--data-root /second_drive/docker` like example following into file `/lib/systemd/system/docker.service` :
|
|
|
|
```
|
|
ExecStart=/usr/bin/dockerd --data-root /second_drive/docker -H fd:// --containerd=/run/containerd/containerd.sock
|
|
```
|
|
|
|
# Update docker
|
|
When building your docker with script
|
|
> make docker_build_odoo_18
|
|
|
|
List your docker version
|
|
> docker images
|
|
|
|
You need to push your docker image and update your tag, like 1.0.1:
|
|
> docker push technolibre/erplibre:VERSION
|
|
|
|
# Diagnostic
|
|
When getting and error about missing module, or after an upgrade, you need to update config file.
|
|
> make docker_exec_erplibre_gen_config
|