from-docker-compose.md 5.99 KB
Newer Older
Patipat Jo's avatar
Patipat Jo committed
1
2
3
# วิธีการติดตั้ง CKAN ด้วย Docker Compose
สำหรับการติดตั้ง CKAN ด้วย Docker Compose แนะนำให้มีการติดตั้ง docker และ docker-compose ก่อน โดยใช้เวอร์ชั่น ดังนี้ 
- 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
14
```
## การติดตั้ง docker
Patipat Jo's avatar
Patipat Jo committed
15
ติดตั้ง docker สำหรับเครื่องที่ยังไม่ได้ติดตั้ง โดยใช้คำสั่ง
16
```sh
Patipat Jo's avatar
Patipat Jo committed
17
18
sudo curl https://get.docker.com | sh
#รอจนกว่าการติดตั้งเสร็จเรียบร้อย
19
```
Patipat Jo's avatar
Patipat Jo committed
20
เมื่อติดตั้ง docker เรียบร้อยให้ทำการให้สิทธิ์การใช้งานสำหรับ user ตั้งนี้
21
```sh
Patipat Jo's avatar
Patipat Jo committed
22
23
24
25
26
27
28
29
30
sudo newgrp docker

sudo usermode -aG docker `whoami`

#ตรวจสอบ image ที่มีอยู่ในเครื่อง
docker images

#ทดสอบ run docker 
docker run hello-world
31
32
33
```

## การติดตั้ง docker-compose
Patipat Jo's avatar
Patipat Jo committed
34
ติดตั้ง docker-compose สำหรับเครื่องที่ยังไม่ได้ติดตั้ง โดยใช้คำสั่ง
35
```sh
Patipat Jo's avatar
Patipat Jo committed
36
37
sudo apt install docker-compose

38
# ตรวจสอบ version ของ docker-compose
Patipat Jo's avatar
Patipat Jo committed
39
docker-compose -v
40
41
```

Patipat Jo's avatar
Patipat Jo committed
42
43
## การติดตั้ง ckan docker และ extension
### 1. ทำการโหลด ckan-docker-thai-gdc
44
```sh
Patipat Jo's avatar
Patipat Jo 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
48

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

cp .env.tempate .env
53
```
Patipat Jo's avatar
Patipat Jo committed
54
### 3. แก้ไขไฟล์ .env
55
```sh
Patipat Jo's avatar
Patipat Jo committed
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
    - กำหนด 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
        > CKAN_VERSION=2.8
    - ตัวเลขกำกับ 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
        > CKAN_SITE_URL=http://{domain}:8881
    - กำหนด CKAN Port
        > CKAN_PORT=5000
    - กำหนดรายละเอียด SysAdmin ของระบบ
        > CKAN_SYSADMIN_NAME={admin_username}
        > CKAN_SYSADMIN_PASSWORD={admin_password}
        > CKAN_SYSADMIN_EMAIL={admin_email}
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148

# Database connections (TODO: avoid duplication)
# การตั้งค่าเพื่อจัดการ database postgres สำหรับ CKAN
CKAN_SQLALCHEMY_URL=postgresql://ckan:ckan@db/ckan
# การตั้งค่าเพื่อเขียนข้อมูลลง datastore สำหรับ plugin dataphser
CKAN_DATASTORE_WRITE_URL=postgresql://ckan:ckan@db/datastore
# การตั้งค่าเพื่ออ่านข้อมูลจาก datastore สำหรับ plugin dataphser
CKAN_DATASTORE_READ_URL=postgresql://datastore_ro:datastore@db/datastore

# Other services connections
# url สำหรับเชื่อมต่อกับ solr
CKAN_SOLR_URL=http://solr:8983/solr/ckan
# url สำหรับเชื่อมต่อกับ redis
CKAN_REDIS_URL=redis://redis:6379/0


# Core settings
# path สำหรับ storage ของ CKAN
CKAN__STORAGE_PATH=/var/lib/ckan
CKAN_SMTP_SERVER=smtp.corporateict.domain:25
CKAN_SMTP_STARTTLS=True
CKAN_SMTP_USER=user
CKAN_SMTP_PASSWORD=pass
CKAN_SMTP_MAIL_FROM=ckan@localhost

# Extensions
# plugin ทั้งหมดที่เปิดใช้งาน
CKAN__PLUGINS=envvars stats image_view text_view recline_view resource_proxy webpage_view datastore datapusher scheming_datasets pages pdf_view hierarchy_display hierarchy_form dcat dcat_json_interface structured_data thai_gdc
#thai_gdc scheming_datasets scheming_datasets
CKAN__HARVEST__MQ__TYPE=redis
CKAN__HARVEST__MQ__HOSTNAME=redis
CKAN__HARVEST__MQ__PORT=6379
CKAN__HARVEST__MQ__REDIS_DB=0

# CKAN__SITE_URL=http://localhost:8881

# defualt view
CKAN__VIEWS__DEFAULT_VIEWS=image_view text_view recline_view webpage_view pdf_view

# pages extensin setting 
CKANEXT__PAGES__FORM=pages/base_form.html
# CKANEXT__PAGES__ABOUT_MENU=False
# CKANEXT__PAGES__GROUP_MENU=False
# CKANEXT__PAGES__ORGANIZATION_MENU=False
CKANEXT__PAGES__ALLOW_HTML=True
CKANEXT__PAGES__EDITOR=ckeditor
# dataset schema setting
CKAN___SCHEMING__DATASET_SCHEMAS=ckanext.thai_gdc:ckan_dataset.json
```

4. เริ่มการทำงานของ CKAN ด้วย docker-compose
```sh
$ docker-compose up -d --build
# ตรวจการทำงานของ docker-compose ที่เรารัน
$ docker ps 
###########
ทดสอบการงานของ CKAN ด้วยเข้าไปใช้งานเว็บบราวเซอร์ url: http://localhost:8881
```

5. ยกเลิกการทำงานของ CKAN docker และ clear ข้อมูล 
```sh
$ docker-compose down
$ docker volume prune
$ docker system prune
```