Cài Docker
Install using the script written at the bottom of Docker official website procedure.
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Install docker-compose
Đầu tiên cài thư viện libffi-dev$ sudo apt install libffi-dev
Sau khi cài xong libffi-dev, bạn có thể cài docker-compose từ pip3.
$ sudo pip3 install docker-compose
Kiểm tra việc cài đặt.
$ docker-compose version
docker-compose version 1.26.2, build unknown
docker-py version: 4.2.2
CPython version: 3.7.3
OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
Thêm người dùng hiện tại vào nhóm docker để tránh cần sudo chạy lệnh docker:
sudo usermod -aG docker $USER
Cap quyen de chay
systemctl start docker
systemctl enable docker
sudo chmod 666 /var/run/docker.sock
Tao thu muc chua file chay
MKDIR docker CD docker NANO docker-compose.yml
Noi dung:
version: '3.1'
services:
web:
image: arm64v8/odoo:14.0
depends_on:
- db
ports:
- "8069:8069"
db:
image: postgres:13
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
Hien chi co arm64v8/odoo chay tren docker la odoo 12
https://hub.docker.com/r/arm64v8/odoo/tags
docker pull arm64v8/odoo:latest
Cách sử dụng hình ảnh nay
https://hub.docker.com/r/arm64v8/odoo/
Khởi động máy chủ PostgreSQL
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:13
Bắt đầu một phiên bản Odoo
docker run -p 8069:8069 --name odoo --link db:db -t arm64v8/odoo
Bí danh của vùng chứa đang chạy Postgres phải là db để Odoo có thể kết nối với máy chủ Postgres.
Dừng và khởi động lại phiên bản Odoo
docker stop odoo
docker start -a odoo
Sử dụng các tập đã đặt tên để bảo toàn dữ liệu
Khi vùng chứa Odoo được tạo như mô tả ở trên, vùng chứa odoo được tạo bên trong vùng chứa. Nếu hộp chứa bị loại bỏ, kho chứa sẽ bị mất. Cách ưu tiên để ngăn chặn điều đó là sử dụng một tập có tên Docker .
docker run -v odoo-data:/var/lib/odoo -d -p 8069:8069 --name odoo --link db:db -t odoo
Với lệnh trên, ổ đĩa được đặt tên odoo-datasẽ vẫn tồn tại ngay cả khi vùng chứa bị xóa và có thể được sử dụng lại bằng cách đưa ra lệnh tương tự.
Đường dẫn /var/lib/odoođược sử dụng làm điểm gắn kết của ổ đĩa phải khớp với odoo data_dirtrong tệp cấu hình hoặc dưới dạng các tham số CLI.
Lưu ý rằng nguyên tắc tương tự cũng áp dụng cho vùng chứa Postgresql và một ổ đĩa được đặt tên có thể được sử dụng để bảo vệ cơ sở dữ liệu khi vùng chứa bị xóa. Vì vậy, vùng chứa cơ sở dữ liệu có thể được bắt đầu như thế này (trước vùng chứa odoo):
docker run -d -v odoo-db:/var/lib/postgresql/data -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:13
Dừng và khởi động lại máy chủ PostgreSQL
Khi máy chủ PostgreSQL được khởi động lại, các phiên bản Odoo được liên kết với máy chủ đó cũng phải được khởi động lại vì địa chỉ máy chủ đã thay đổi và do đó liên kết bị hỏng.
Khởi động lại máy chủ PostgreSQL không ảnh hưởng đến cơ sở dữ liệu đã tạo.
Chạy Odoo với cấu hình tùy chỉnh
Tệp cấu hình mặc định cho máy chủ (đặt tại /etc/odoo/odoo.conf) có thể được ghi đè khi khởi động bằng cách sử dụng ổ đĩa. Giả sử bạn có cấu hình tùy chỉnh /path/to/config/odoo.conftại
docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t arm64v8/odoo
Vui lòng sử dụng mẫu cấu hình này để viết cấu hình tùy chỉnh của bạn vì chúng tôi đã đặt một số đối số để chạy Odoo bên trong vùng chứa Docker.
Bạn cũng có thể chỉ định trực tiếp các đối số Odoo trong dòng. Các đối số đó phải được đưa ra sau từ khóa –trong dòng lệnh, như sau
docker run -p 8069:8069 --name odoo --link db:db -t arm64v8/odoo -- --db-filter=odoo_db_.*
Gắn kết các addon tùy chỉnh
Bạn có thể gắn các addon Odoo của riêng mình trong vùng chứa Odoo, tại/mnt/extra-addons
docker run -v /path/to/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t arm64v8/odoo
Chạy nhiều phiên bản Odoo
docker run -p 8070:8069 --name odoo2 --link db:db -t arm64v8/odoo
docker run -p 8071:8069 --name odoo3 --link db:db -t arm64v8/odoo
Xin lưu ý rằng để sử dụng đơn giản các chức năng của thư và báo cáo, khi cổng máy chủ và cổng chứa khác nhau (ví dụ: 8070 và 8069), người ta phải đặt, trong Odoo, Cài đặt-> Thông số-> Thông số hệ thống (yêu cầu tính năng kỹ thuật), web. base.url đến cảng container (ví dụ: 127.0.0.1:8069).
Cách 2
curl -sSL https://get.docker.com | sh
sudo apt update sudo apt install docker.io
sudo docker version
Sudo systemctl enable docker sudo systemctl start docker.
Something is a bit odd there. runc version 1.0.0~rc6… or later should be available. I can’t check at the moment as most of my Pi systems are running bullseye, not buster. I only have one 32-bit one that is running buster still. I could set up a test one in the morning.
Meanwhile, what do you get from the output of apt policy and apt policy runc ?
Just follow the steps at: https://docs.docker.com/engine/install/debian/
The above will give you:
policy docker-ce
docker-ce:
Installed: 5:20.10.8~3-0~debian-bullseye
Candidate: 5:20.10.8~3-0~debian-bullseye
Nginx
Mở http://dev.minhng.info hoặc https://dev.minhng.info để truy cập dịch vụ đang chạy tại http://0.0.0.0:8445/ trên máy từ xa (máy chủ).
Ánh xạ: dev.minhng.info -> http://0.0.0.0:8445/
Chúng tôi sẽ sử dụng docker-compose để thiết lập dễ dàng/nhanh chóng kiến trúc này.
Nginx proxy HTTP
Tạo file web.conf với nội dung để ánh xạ: http://dev.minhng.info -> http://0.0.0.0:8445/:
server {
listen 80;
server_name dev.minhng.info;
sendfile on;
charset utf-8;
# max upload size
client_max_body_size 50G; # adjust to taste
location / {
proxy_pass http://0.0.0.0:8445/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_set_header Host $host;
}
}
File docker-compose.yml:
version: ‘3.3’
services:
nginx:
image: nginx:stable-alpine
volumes:
– ./web.conf:/etc/nginx/conf.d/default.conf
network_mode: host
ipc: host
restart: unless-stopped # or “always”
command: /bin/sh -c “nginx -g ‘daemon off;'”
Đặt hai tệp này ( web.conf và docker-compose.yml ) vào cùng một thư mục và chạy lệnh sau để thiết lập:docker-compose up -d
Khởi động lại nginx: docker-compose restart
Lưu ý : sửa đổi web.conf để phù hợp với yêu cầu của bạn.
Nginx proxy HTTPS (an toàn)
Ánh xạ: https://dev.minhng.info -> http://0.0.0.0:8445/
web.conf
server {
listen 80;
listen [::]:80;
server_name dev.minhng.info;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name dev.minhng.info;
ssl_certificate /root/ssl/official/gveyes_net.crt;
ssl_certificate_key /root/ssl/official/gveyes.net.private_key;
sendfile on;
charset utf-8;
# max upload size
client_max_body_size 50G; # adjust to taste
location / {
proxy_pass http://0.0.0.0:8445/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_set_header Host $host;
}
}
docker-compose.yml
version: ‘3.3’
services:
nginx:
image: nginx:stable-alpine
volumes:
– ./web.conf:/etc/nginx/conf.d/default.conf
– /root/ssl/official/gveyes_net.crt:/root/ssl/official/gveyes_net.crt
– /root/ssl/official/gveyes.net.private_key:/root/ssl/official/gveyes.net.private_key
network_mode: host
ipc: host
restart: unless-stopped # or “always”
command: /bin/sh -c “nginx -g ‘daemon off;'”
Đặt hai tệp này ( web.conf và docker-compose.yml ) vào cùng một thư mục và chạy lệnh sau để thiết lập:
docker-compose up -d
Khởi động lại nginx:
$ docker-compose restart
Lưu ý : sửa đổi web.conf để phù hợp với yêu cầu của bạn.
Docker-compose.yml mẫu cho nginx, nội dung giải thích như sau:
Nginx config @ tập tin web.conf
Tệp tĩnh trong thư mục html
Chứng chỉ SSL trong thư mục ssl
Đăng nhập vào thư mục nhật ký
version: ‘3.3’
services:
nginx:
image: nginx:stable-alpine
volumes:
– ./web.conf:/etc/nginx/conf.d/default.conf
– ./html/:/usr/share/nginx/html/
– ./ssl/:/root/ssl/official/
– ./log/:/var/log/nginx/
network_mode: host
ipc: host
restart: unless-stopped # or “always”
command: /bin/sh -c “nginx -g ‘daemon off;'”
Tham khảo; https://hub.docker.com//nginx/ https://minhng.info/docker/docker-compose-for-nginx.html
https://mindsers.blog/post/https-using-nginx-certbot-docker/
https://pentacent.medium.com/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71
Bài viết liên quan: