Menggunakan Odoo WOW pada Docker¶
Repositori pada GItLab - wow.proxsis.com
Memindahkan berkas cadangan dari WOW ke node02¶
- Database
- DO space > https://proxsis.nyc3.digitaloceanspaces.com > proxsis > wow-odoo-dbbackup > 201903290000.wow.dump > more > Quick Share > 1 hour > Copy Link
- node02 > curl https://nyc3.digitaloceanspaces.com/proxsis/wow-odoo-dbbackup/201903290000.wow.dump?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=BCMARPTWJ6OE5K2AJVOH%2F20190401%2Fnyc3%2Fs3%2Faws4_request&X-Amz-Date=20190401T183334Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ad2d8312acb749819760dfd0f0d605abfed99492743013afddc4b140a1b67090
Odoo image 10 terbaru¶
Lokasi
cd ~/repos/proxsis/biztech/wow.proxsis.com/doVPS/opt/official-latest-image
Isi dari direktori adalah berkas seperti yang dapat dilihat pada repositori Odoo Docker pada GitHub, sebagai berikut:
- Dockerfile
- entrypoint.sh
- odoo.conf
Setelah memastikan kesiapan cadangan berkas, seperti:
- basis data, dalam format
*.dump
atau.zip
- filestore, yang umumnya ada pada
/var/lib/odoo/filestore
atau/var/lib/odoo/.local/share/Odoo/filestore
atau lokasi lainnya - addons lain yang digunakan
Buat kontainer postgres dan odoo, akses instalasi melalui peramban, lalu pulihkan berkas arsip basis data. Proses pemulihan akan memakan waktu cukup lama, sambil menunggu mari kita ngopi dulu.
Kontainer Postgres¶
docker container run -ti --rm \
-e POSTGRES_USER=odoo \
-e POSTGRES_PASSWORD=odoo \
-e POSTGRES_DB=postgres \
-v $(pwd)/.db:/var/lib/postgresql/data \
--name db-latest \
postgres:9.4.19
Kontainer Odoo¶
docker container run -ti --rm \
-p 8069:8069 \
-v $(pwd)/.odoo-custom-addons:/mnt/extra-addons \
-v $(pwd)/.filestore/wow:/var/lib/odoo/filestore/wow \
-v $(pwd)/.config:/etc/odoo \
--name odoo-latest \
--link db-latest:db \
-t odoo:10.0
-v $(pwd)/.config:/etc/odoo \
docker-compose.yml¶
dasar¶
version: '3.3'
services:
postgres:
image: postgres:9.4.19
environment:
- POSTGRES_USER=odoo
odoo:
image: elicocorp/odoo:10.0
command: start
ports:
- 8069:8069
links:
- postgres:db
environment:
- ODOO_DB_USER=odoo
security¶
version: '3.3'
services:
postgres:
image: postgres:9.4.19
environment:
- POSTGRES_USER=odoo
# - POSTGRES_USER=postgres
# - POSTGRES_PASSWORD=strong_pg_superuser_password
odoo:
image: elicocorp/odoo:10.0
command: start
ports:
- 8069:8069
# - 127.0.0.1:8069:8069
links:
- postgres:db
environment:
- ODOO_ADMIN_PASSWD=strong_odoo_master_password
- ODOO_DB_USER=odoo
# - ODOO_DB_PASSWORD=strong_pg_odoo_password
bind volume¶
mkdir -v -p ./volumes/{postgres,odoo/filestore,odoo/sessions}
version: '3.3'
services:
postgres:
image: postgres:9.4.19
volumes:
- ./volumes/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_USER=odoo
# - POSTGRES_USER=postgres
# - POSTGRES_PASSWORD=strong_pg_superuser_password
odoo:
image: elicocorp/odoo:10.0
command: start
ports:
- 8069:8069
# - 127.0.0.1:8069:8069
links:
- postgres:db
volumes:
- ./volumes/odoo/filestore:/opt/odoo/data/filestore
- ./volumes/odoo/sessions:/opt/odoo/data/sessions
environment:
- ODOO_ADMIN_PASSWD=strong_odoo_master_password
- ODOO_DB_USER=odoo
# - ODOO_DB_PASSWORD=strong_pg_odoo_password
host user mapping & volumes¶
testing postgres user mapping (debian based)¶
#
docker run -it --rm --user www-data postgres
#
docker run -it --rm --user 1000:1000 postgres
#
docker run -it --rm --user "$(id -u):$(id -g)" -v /etc/passwd:/etc/passwd:ro postgres
#
docker volume create pgdata
docker run -it --rm -v pgdata:/var/lib/postgresql/data postgres
docker run -it --rm -v pgdata:/var/lib/postgresql/data bash chown -Rv 1000:1000 /var/lib/postgresql/data
docker run -it --rm --user 1000:1000 -v pgdata:/var/lib/postgresql/data postgres
docker-compose with user mapping¶
version: '3.3'
services:
postgres:
image: postgres:9.4.19
volumes:
- ./volumes/postgres:/var/lib/postgresql/data
- /etc/passwd:/etc/passwd:ro
environment:
- POSTGRES_USER=odoo
# - POSTGRES_USER=postgres
# - POSTGRES_PASSWORD=strong_pg_superuser_password
user: 1000:1000
# user: 1001:1001
odoo:
image: elicocorp/odoo:10.0
command: start
ports:
- 8069:8069
# - 127.0.0.1:8069:8069
links:
- postgres:db
volumes:
- ./volumes/odoo/filestore:/opt/odoo/data/filestore
- ./volumes/odoo/sessions:/opt/odoo/data/sessions
environment:
- TARGET_UID=1000
# - TARGET_UID=1001
- ODOO_ADMIN_PASSWD=strong_odoo_master_password
- ODOO_DB_USER=odoo
# - ODOO_DB_PASSWORD=strong_pg_odoo_password
additional addons from OCA¶
mkdir -v -p ./volumes/{postgres,odoo/filestore,odoo/sessions,odoo/addons}
version: '3.3'
services:
postgres:
image: postgres:9.4.19
volumes:
- ./volumes/postgres:/var/lib/postgresql/data
- /etc/passwd:/etc/passwd:ro
environment:
- POSTGRES_USER=odoo
user: 1000:1000
odoo:
image: elicocorp/odoo:10.0
command: start
ports:
- 8069:8069
- 127.0.0.1:8072:8072
links:
- postgres:db
volumes:
- ./volumes/odoo/addons:/opt/odoo/additional_addons
- ./volumes/odoo/filestore:/opt/odoo/data/filestore
- ./volumes/odoo/sessions:/opt/odoo/data/sessions
environment:
# - FETCH_OCA_DEPENDENCIES=False
- TARGET_UID=1000
- ODOO_ADMIN_PASSWD=strong_odoo_master_password
- ODOO_DB_USER=odoo
custom config & addons¶
mkdir -v -p ./volumes/{postgres,odoo/filestore,odoo/sessions,odoo/addons,odoo/config}
nano ~/wow.proxsis.com/volumes/odoo/config/odoo.conf
[options]
timezone = Asia/Jakarta
# Specific setup for Docker
db_host = db
db_port = False
data_dir = /opt/odoo/data
db_user = odoo
admin_passwd = strong_odoo_master_password
addons_path = /opt/odoo/additional_addons,/opt/odoo/sources/odoo/addons
version: '3.3'
services:
postgres:
image: postgres:9.4.19
volumes:
- ./volumes/postgres:/var/lib/postgresql/data
- /etc/passwd:/etc/passwd:ro
environment:
- POSTGRES_USER=odoo
# - POSTGRES_USER=postgres
# - POSTGRES_PASSWORD=strong_pg_superuser_password
user: 1000:1000
odoo:
# image: elicocorp/odoo:10.0
build: ./build
image: elicocorp/odoo:10.0
command: start
ports:
- 8069:8069
- 127.0.0.1:8072:8072
links:
- postgres:db
volumes:
# - ./volumes/odoo/wow-odoo-custom-addons:/opt/odoo/wow_addons
- ./volumes/odoo/wow-odoo-custom-addons:/opt/odoo/data/addons/10.0
- ./volumes/odoo/addons:/opt/odoo/additional_addons
- ./volumes/odoo/filestore:/opt/odoo/data/filestore
- ./volumes/odoo/sessions:/opt/odoo/data/sessions
# - ./volumes/odoo/config/odoo.conf:/opt/odoo/etc/odoo.conf
environment:
- FETCH_OCA_DEPENDENCIES=False
- TARGET_UID=1000
- ODOO_ADMIN_PASSWD=strong_odoo_master_password
- ODOO_DB_USER=odoo
# - ODOO_DB_PASSWORD=strong_pg_odoo_password
docker container exec -it wow-docker_odoo_1 /bin/bash
ls /opt/odoo/{data/addons/10.0,sources/odoo/addons,sources/odoo/odoo/addons}
restore db, filestore, addons¶
sandi_acak_aman_anda
restore database¶
curl -F 'master_pwd=strong_odoo_master_password' -F backup_file=@/home/deploy/unduh/201903290000.wow.dump -F 'copy=true' -F 'name=wow' http://localhost:8069/web/database/restore
restore filestore¶
cp -aRv ~/unduh/var/lib/odoo/.local/share/Odoo/filestore/wow ~/wow-docker/volumes/odoo/filestore/
wow custom modul¶
git clone https://gitlab+deploy-token-56838:[email protected]/proxsis/biztech/wow-odoo-custom-addons ~/wow.proxsis.com/volumes/odoo/addons/.
OCA addons¶
nano ~/wow.proxsis.com/volumes/odoo/addons/oca_dependencies.txt
# List the OCA project dependencies, one per line
# Add a repository url and branch if you need a forked version
#
# Examples
# ========
#
# To depend on the standard version of sale-workflow, use:
# sale-workflow
#
# To explicitely give the URL of a fork, and still use the version specified in
# .travis.yml, use:
# sale-workflow https://github.com/OCA/sale-workflow
#
# To provide both the URL and a branch, use:
# sale-workflow https://github.com/OCA/sale-workflow branchname
server-tools https://github.com/OCA/server-tools 10.0
docker-compose exec¶
docker-compose exec -u odoo odoo bash
Odoo image 10 wow.proxsis.com¶
Lokasi:
cd ~/repos/proxsis/biztech/wow.proxsis.com/doVPS/opt/official-production-image
TODO:
TODO¶
Koreksi zona waktu¶
ENV TZ=Asia/Jakarta
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
Penyesuaian versi Odoo 10.0-20180703¶
Membuat Docker Image¶
docker image build \
--build-arg http_proxy=http://172.17.0.1:3142 \
--build-arg https_proxy=http://172.17.0.1:3142 \
--rm --tag odoo-wow:10.0 .
--no-cache
Kontainer Postgres - prod¶
docker container run -ti --rm \
-e POSTGRES_USER=odoo \
-e POSTGRES_PASSWORD=odoo \
-e POSTGRES_DB=postgres \
-v $(pwd)/.db:/var/lib/postgresql/data \
--name db-prod \
postgres:9.4.19
Kontainer Odoo - prod¶
docker container run -ti --rm \
-p 8110:8069 \
-v $(pwd)/.odoo-custom-addons:/mnt/extra-addons \
-v $(pwd)/.filestore/wow:/var/lib/odoo/filestore/wow \
--name odoo-prod \
--link db-prod:db-prod \
-t odoo-wow:10.0
docker container run -ti --rm \
-p 8110:8069 \
--name odoo-prod \
-t odoo-wow:10.0 /bin/bash
Rujukan¶
- https://hub.docker.com/_/postgres
- https://github.com/docker-library/postgres/tree/master/9.4
- https://hub.docker.com/_/odoo
- https://github.com/odoo/docker/tree/master/10.0
- https://hub.docker.com/_/nginx
- https://github.com/nginxinc/docker-nginx/tree/master/stable/stretch
- http://nightly.odoo.com/10.0/nightly/deb/
- https://github.com/Elico-Corp/odoo-docker#host-user-mapping
- https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user
- https://hub.docker.com/_/postgres/#arbitrary---user-notes
- https://docs.docker.com/compose/compose-file/#variable-substitution
- https://github.com/OCA/maintainer-quality-tools/blob/master/sample_files