from-docker-compose.md 5 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
thepaeth's avatar
thepaeth committed
45
46
cd ckan-docker
git checkout ckan-datapusher
47
```
Patipat Jo's avatar
Patipat Jo committed
48

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

Patipat Jo's avatar
Patipat Jo committed
53
cp .env.template .env
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
66
    - กำหนด 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
67
        > CKAN_VERSION=2.9
Patipat Jo's avatar
Patipat Jo committed
68
69
70
71
72
73
74
    - ตัวเลขกำกับ container (default)
        > PROJECT_NUMBER=1
    - กำหนด port สำหรับ Nginx
        > NGINX_PORT=8881
    - กำหนด port สำหรับ Datapusher
        > DATAPUSHER_PORT=8800
    - กำหนด url สำหรับเว็บเป็น Domain/IP
Patipat Jo's avatar
Patipat Jo committed
75
        > DEFAULT_URL=http://{Domain/IP}
Patipat Jo's avatar
Patipat Jo committed
76
77
78
    - กำหนด CKAN Site ID (default)
        > CKAN_SITE_ID=default
    - กำหนด CKAN Site URL
Patipat Jo's avatar
Patipat Jo committed
79
        > CKAN_SITE_URL=http://localhost:8881
Patipat Jo's avatar
Patipat Jo committed
80
81
82
83
84
85
    - กำหนด 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
86
    - การตั้งค่าเพื่อจัดการ database postgres สำหรับ CKAN
Patipat Jo's avatar
Patipat Jo committed
87
        > CKAN_SQLALCHEMY_URL=postgresql://ckan:{ckan_password}@db/ckan
thepaeth's avatar
thepaeth committed
88
    - การตั้งค่าเพื่อเขียนข้อมูลลง datastore สำหรับ plugin dataphser
Patipat Jo's avatar
Patipat Jo committed
89
        > CKAN_DATASTORE_WRITE_URL=postgresql://ckan:{ckan_password}@db/datastore
thepaeth's avatar
thepaeth committed
90
    - การตั้งค่าเพื่ออ่านข้อมูลจาก datastore สำหรับ plugin dataphser
Patipat Jo's avatar
Patipat Jo committed
91
        > CKAN_DATASTORE_READ_URL=postgresql://datastore_ro:{datastore_password}@db/datastore
thepaeth's avatar
thepaeth committed
92
93
94
95
96
97
98
99
100
101
    - 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
102
103
```

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

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

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

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