from-docker-compose.md 5.4 KB
Newer Older
Patipat Jo's avatar
Patipat Jo committed
1
# วิธีการติดตั้ง CKAN ด้วย Docker Compose
Patipat Jo's avatar
Patipat Jo committed
2

Patipat Jo's avatar
Patipat Jo committed
3
สำหรับการติดตั้ง CKAN ด้วย Docker Compose แนะนำให้ติดตั้ง docker และ docker-compose ก่อน โดยใช้เวอร์ชั่น ดังนี้ 
Patipat Jo's avatar
Patipat Jo committed
4
- docker >= 19
thepaeth's avatar
thepaeth committed
5
- docker-compose >= version 1.13
6

Patipat Jo's avatar
Patipat Jo committed
7
วิธีการตรวจสอบเวอร์ชั่นของ docker และ docker-compose
8
```sh
Patipat Jo's avatar
Patipat Jo committed
9
10
11
12
13
docker -v
#Docker version 19.03.13, build 4484c46d9d

docker-compose -v
#docker-compose version 1.26.2, build unknown
14
```
Patipat Jo's avatar
Patipat Jo committed
15
## [เตรียม] การติดตั้ง docker
16
```sh
Patipat Jo's avatar
Patipat Jo committed
17
18
sudo apt-get update

Patipat Jo's avatar
Patipat Jo committed
19
curl https://get.docker.com | sh
Patipat Jo's avatar
Patipat Jo committed
20
#รอจนกว่าการติดตั้งเสร็จเรียบร้อย
21
```
Patipat Jo's avatar
Patipat Jo committed
22
ทำการให้สิทธิ์การใช้งานสำหรับ user
23
```sh
Patipat Jo's avatar
Patipat Jo committed
24
sudo usermod -aG docker `whoami`
Patipat Jo's avatar
Patipat Jo committed
25

thepaeth's avatar
thepaeth committed
26
newgrp docker
Patipat Jo's avatar
Patipat Jo committed
27
28
29
```
ตรวจสอบ version ของ docker
```sh
Patipat Jo's avatar
Patipat Jo committed
30
docker -v
31
32
```

Patipat Jo's avatar
Patipat Jo committed
33
## [เตรียม] การติดตั้ง docker-compose
34
```sh
Patipat Jo's avatar
Patipat Jo committed
35
sudo apt install docker-compose
Patipat Jo's avatar
Patipat Jo committed
36
37
38
```
ตรวจสอบ version ของ docker-compose
```sh
Patipat Jo's avatar
Patipat Jo committed
39
docker-compose -v
40
41
```

Patipat Jo's avatar
Patipat Jo committed
42
## การติดตั้ง CKAN Docker และ Extension
Patipat Jo's avatar
Patipat Jo committed
43
### 1. ดาวน์โหลด ckan-docker-thai-gdc
44
```sh
thepaeth's avatar
thepaeth committed
45
git clone https://gitlab.nectec.or.th/opend/ckan-docker-thai-gdc.git ~/ckan-docker
46
```
Patipat Jo's avatar
Patipat Jo committed
47

Patipat Jo's avatar
Patipat Jo committed
48
### 2. สร้างไฟล์ .env จากไฟล์ .env.template ที่เตรียมไว้ให้
49
```sh
Patipat Jo's avatar
Patipat Jo committed
50
51
cd ~/ckan-docker

Patipat Jo's avatar
Patipat Jo committed
52
cp .env.template .env
53
```
Patipat Jo's avatar
Patipat Jo committed
54

Patipat Jo's avatar
Patipat Jo committed
55
### 3. แก้ไขไฟล์ .env
56
```sh
Patipat Jo's avatar
Patipat Jo committed
57
vi .env
Patipat Jo's avatar
Patipat Jo committed
58
59
60
61
62
63
64
65
    - กำหนด Username และ Password สำหรับ Database ของ CKAN
        > POSTGRES_USER=ckan
        > POSTGRES_PASSWORD={ckan_password}
    - กำหนด Username และ Password สำหรับ Datastore
        > DATASTORE_READONLY_USER=datastore_ro
        > DATASTORE_READONLY_PASSWORD={datastore_password}
    - กำหนดชื่อ Host สำหรับ Database Postgres
        > POSTGRES_HOST=db
Patipat Jo's avatar
Patipat Jo committed
66
    - กำหนด version ของ CKAN (แก้ไขเป็น 2.9)
Patipat Jo's avatar
Patipat Jo committed
67
        > CKAN_VERSION=2.9
Patipat Jo's avatar
Patipat Jo committed
68
69
    - ตัวเลขกำกับ container (default)
        > PROJECT_NUMBER=1
Patipat Jo's avatar
Patipat Jo committed
70
    - กำหนด port สำหรับ Nginx (แก้ไขเป็น 80)
Patipat Jo's avatar
Patipat Jo committed
71
        > NGINX_PORT=80
Patipat Jo's avatar
Patipat Jo committed
72
73
    - กำหนด port สำหรับ Datapusher
        > DATAPUSHER_PORT=8800
Patipat Jo's avatar
Patipat Jo committed
74
75
    - กำหนด url สำหรับเว็บ (แก้ไขเป็น IP หรือ Domain)
        > DEFAULT_URL=http://{IP or Domain}
Patipat Jo's avatar
Patipat Jo committed
76
77
78
79
80
81
82
83
    - กำหนด CKAN Site ID (default)
        > CKAN_SITE_ID=default
    - กำหนด CKAN Port
        > CKAN_PORT=5000
    - กำหนดรายละเอียด SysAdmin ของระบบ
        > CKAN_SYSADMIN_NAME={admin_username}
        > CKAN_SYSADMIN_PASSWORD={admin_password}
        > CKAN_SYSADMIN_EMAIL={admin_email}
thepaeth's avatar
thepaeth committed
84
    - การตั้งค่าเพื่อจัดการ database postgres สำหรับ CKAN
Patipat Jo's avatar
Patipat Jo committed
85
        > CKAN_SQLALCHEMY_URL=postgresql://ckan:{ckan_password}@db/ckan
thepaeth's avatar
thepaeth committed
86
    - การตั้งค่าเพื่อเขียนข้อมูลลง datastore สำหรับ plugin dataphser
Patipat Jo's avatar
Patipat Jo committed
87
        > CKAN_DATASTORE_WRITE_URL=postgresql://ckan:{ckan_password}@db/datastore
thepaeth's avatar
thepaeth committed
88
    - การตั้งค่าเพื่ออ่านข้อมูลจาก datastore สำหรับ plugin xloader
Patipat Jo's avatar
Patipat Jo committed
89
        > CKAN_DATASTORE_READ_URL=postgresql://datastore_ro:{datastore_password}@db/datastore
thepaeth's avatar
thepaeth committed
90
        > CKANEXT__XLOADER__JOBS_DB__URI=postgresql://ckan:{ckan_password}@db/ckan
thepaeth's avatar
thepaeth committed
91
92
93
94
95
96
97
    - url สำหรับเชื่อมต่อกับ solr
        > CKAN_SOLR_URL=http://solr:8983/solr/ckan
    - url สำหรับเชื่อมต่อกับ redis
        > CKAN_REDIS_URL=redis://redis:6379/0
    - path สำหรับ storage ของ CKAN
        > CKAN__STORAGE_PATH=/var/lib/ckan
    - plugin ทั้งหมดที่เปิดใช้งาน
thepaeth's avatar
thepaeth committed
98
        > CKAN__PLUGINS=envvars stats image_view text_view recline_view resource_proxy webpage_view datastore xloader scheming_datasets pdf_view hierarchy_display hierarchy_form dcat dcat_json_interface structured_data dga_stats thai_gdc
Patipat Jo's avatar
Patipat Jo committed
99
    - default view
thepaeth's avatar
thepaeth committed
100
        > CKAN__VIEWS__DEFAULT_VIEWS=image_view text_view recline_view webpage_view pdf_view
101
102
```

Patipat Jo's avatar
Patipat Jo committed
103
### 4. เริ่มการทำงานของ CKAN ด้วย docker-compose
104
```sh
Patipat Jo's avatar
Patipat Jo committed
105
106
docker-compose up -d --build

Patipat Jo's avatar
Patipat Jo committed
107
# ตรวจการทำงานของ docker-compose ที่ทำการ run อยู่ หลังจากนั้นรอประมาณ 15 วินาที
Patipat Jo's avatar
Patipat Jo committed
108
docker ps
109
110
```

Patipat Jo's avatar
Patipat Jo committed
111
### 5. ทดสอบเรียกใช้เว็บไซต์ผ่าน http://{Domain/IP}
Patipat Jo's avatar
Patipat Jo committed
112

Patipat Jo's avatar
Patipat Jo committed
113
## [เพิ่มเติม] การยกเลิกการทำงานของ CKAN docker และ clear ข้อมูล 
114
```sh
thepaeth's avatar
thepaeth committed
115
# คำสั่งสำหรับหยุดการทำงานและลบ docker container ที่อยู่ใน docker compose
Patipat Jo's avatar
Patipat Jo committed
116
docker-compose down
thepaeth's avatar
thepaeth committed
117
# คำสั่งสำหรับลบ volume ทั้งหมดที่ไม่ได้ใช้งาน
Patipat Jo's avatar
Patipat Jo committed
118
docker volume prune
thepaeth's avatar
thepaeth committed
119
# คำสั่งสำหรับลบ docker image ที่ไม่ได้ใช้งาน
Patipat Jo's avatar
Patipat Jo committed
120
docker system prune
121
```