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

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

docker-compose -v
#docker-compose version 1.26.2, build unknown
13
```
Patipat Jo's avatar
Patipat Jo committed
14
15
## [เตรียม] การติดตั้ง docker
ติดตั้ง docker โดยใช้คำสั่ง
16
```sh
Patipat Jo's avatar
Patipat Jo committed
17
curl https://get.docker.com | sh
Patipat Jo's avatar
Patipat Jo committed
18
#รอจนกว่าการติดตั้งเสร็จเรียบร้อย
19
```
Patipat Jo's avatar
Patipat Jo committed
20
ทำการให้สิทธิ์การใช้งานสำหรับ user
21
```sh
Patipat Jo's avatar
Patipat Jo committed
22
23
sudo newgrp docker

Patipat Jo's avatar
Patipat Jo committed
24
sudo usermod -aG docker `whoami`
Patipat Jo's avatar
Patipat Jo committed
25
26
27
```
ตรวจสอบ version ของ docker
```sh
Patipat Jo's avatar
Patipat Jo committed
28
docker -v
29
30
```

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

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

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

Patipat Jo's avatar
Patipat Jo committed
51
cp .env.template .env
52
```
Patipat Jo's avatar
Patipat Jo committed
53
### 3. แก้ไขไฟล์ .env
54
```sh
Patipat Jo's avatar
Patipat Jo committed
55
vi .env
Patipat Jo's avatar
Patipat Jo committed
56
57
58
59
60
61
62
63
64
    - กำหนด 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
    - กำหนด version ของ CKAN
Patipat Jo's avatar
Patipat Jo committed
65
        > CKAN_VERSION=2.9
Patipat Jo's avatar
Patipat Jo committed
66
67
68
69
70
71
72
73
74
75
76
    - ตัวเลขกำกับ container (default)
        > PROJECT_NUMBER=1
    - กำหนด port สำหรับ Nginx
        > NGINX_PORT=8881
    - กำหนด port สำหรับ Datapusher
        > DATAPUSHER_PORT=8800
    - กำหนด url สำหรับเว็บเป็น Domain/IP
        > DEFAULT_URL=http://localhost
    - กำหนด CKAN Site ID (default)
        > CKAN_SITE_ID=default
    - กำหนด CKAN Site URL
Patipat Jo's avatar
Patipat Jo committed
77
        > CKAN_SITE_URL=http://{domain/IP}:8881
Patipat Jo's avatar
Patipat Jo committed
78
79
80
81
82
83
    - กำหนด 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 dataphser
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
91
92
93
94
95
96
97
98
99
    - 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 ทั้งหมดที่เปิดใช้งาน
        > CKAN__PLUGINS=envvars stats image_view text_view recline_view resource_proxy webpage_view datastore datapusher scheming_datasets pdf_view hierarchy_display hierarchy_form dcat dcat_json_interface structured_data thai_gdc
    - defualt view
        > CKAN__VIEWS__DEFAULT_VIEWS=image_view text_view recline_view webpage_view pdf_view
100
101
```

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

Patipat Jo's avatar
Patipat Jo committed
106
# ตรวจการทำงานของ docker-compose ที่ทำการ run อยู่
Patipat Jo's avatar
Patipat Jo committed
107
$ docker ps
108
109
```

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

Patipat Jo's avatar
Patipat Jo committed
112
#### การยกเลิกการทำงานของ CKAN docker และ clear ข้อมูล 
113
114
115
116
117
```sh
$ docker-compose down
$ docker volume prune
$ docker system prune
```