Linux κΈ°λ° νΈμ€ν μλ²μ νλ‘λμ μ STOQSλ₯Ό λ°°ν¬νλ λ°©λ² μ README.mdμ λ¬Έμν MBARIμ κ³΅μ© STOQS μλ² λ₯Ό λ°°ν¬νκΈ° μν΄ λ°λ₯΄λ μ§μΉ¨μ λλ€.)
ν΄μν λ°μ΄ν°μ μ¬μ©κ³Ό μ΄ν΄λ₯Ό λ μ μ§μνκΈ° μν΄ κ³Όνμλ€μ΄ μ체 μν¬ μ€ν μ΄μ μ μ€μΉλ STOQSλ‘ μμ ν μ μλλ‘ μ§μΉ¨μ μ 곡νκ³ μν©λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€λ₯Όλ‘λνκ³ λ°μ΄ν° κ³Όν μμ μ μννκ³ μ체 μΊ νμΈ λ°μ΄ν°μ λν μκ°νλ₯Ό μμ± ν μ μμ΅λλ€.
μν¬ μ€ν μ΄μ μ€μΉ μ§μΉ¨μ MacOS, Windows λ° Linuxμμ ν μ€νΈν΄μΌν©λλ€.
MacOSμ λ°°ν¬νλ λ° λ¬Έμ κ° μμ΅λλ€. νκ²½μ λ€μκ³Ό κ°μ΅λλ€.
github repoλ₯Ό 볡μ νκ³ μ΄λ―Έμ§λ₯Ό κ°μ Έμ μΉμ±μ λ°°ν¬ν©λλ€. unix time(1)
λͺ
λ Ήμ μκ°μ΄ λ§μ΄ 걸리λ λ¨κ³μ κ²½κ³Ό μκ°μ κΈ°λ‘νλ λ° μ¬μ©λ©λλ€.
mkdir /tmp/GitHub
cd /tmp/GitHub
time git clone https://github.com/stoqs/stoqs.git stoqsgit
Cloning into 'stoqsgit'...
remote: Enumerating objects: 1008, done.
remote: Counting objects: 100% (1008/1008), done.
remote: Compressing objects: 100% (92/92), done.
remote: Total 58864 (delta 938), reused 971 (delta 916), pack-reused 57856
Receiving objects: 100% (58864/58864), 197.44 MiB | 10.31 MiB/s, done.
Resolving deltas: 100% (44798/44798), done.
Checking out files: 100% (26469/26469), done.
real 0m26.203s
user 0m9.229s
sys 0m6.120s
export STOQS_HOME=/tmp/GitHub/stoqsgit
cd $STOQS_HOME/docker
cp template.env .env
# Edited .env to set STOQS_HOME variable and uncomment CAMPAIGNS_MODULE line
time docker-compose pull
Pulling postgis ... done
Pulling mapserver ... done
Pulling stoqs ... done
Pulling nginx ... done
real 2m33.514s
user 0m1.839s
sys 0m0.278s
time docker-compose up -d
Creating network "docker_default" with the default driver
Creating volume "docker_static-files" with default driver
Creating volume "docker_media-files" with default driver
Creating stoqs-mapserver ... done
Creating stoqs-postgis ... done
Creating stoqs ... done
Creating stoqs-nginx ... done
real 0m9.021s
user 0m0.558s
sys 0m0.159s
μ΄κΈ° λ°μ΄ν°λ₯Ό κΈ°λ³Έ λ°μ΄ν°λ² μ΄μ€λ‘λ‘λνκ³ λͺ¨λ ν
μ€νΈλ₯Ό μ€ννλ λ° λͺ λΆ λ 걸립λλ€. λ‘κ·Έ μΆλ ₯μ docker-compose logs -f
λ‘ λͺ¨λν°λ§ ν μ μμ΅λλ€. μ :
docker-compose logs -f
...
stoqs | Wed Jan 30 17:34:01 2019 - [emperor] vassal /etc/uwsgi/django-uwsgi.ini is ready to accept requests
stoqs | WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x55aab8b92010 pid: 245 (default app)
stoqs | WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x55aab8b92010 pid: 250 (default app)
μ΄μ λ‘컬 stoqs μΉ μ±μ https : // localhost μμ μ¬μ©ν μ μμ΅λλ€
λͺ¨λ κ²μ΄ νλ₯ν΄ λ³΄μ΄λ©° μ€μ λ‘ MBARIμ κ³΅μ© STOQS μλ²μμ μΆκ° λ°μ΄ν°λ² μ΄μ€λ₯Όλ‘λνμ¬ μ체 λΆμμ μ¬μ©ν μμλ λ‘컬 λ°μ΄ν°λ₯Ό κ°μ§ μ μμ΅λλ€. μ :
time curl -k https://stoqs.mbari.org/media/pg_dumps/stoqs_canon_september2018.pg_dump | \
> docker exec -i stoqs pg_restore -Fc -U postgres -d stoqs_canon_september2018
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 195M 100 195M 0 0 1190k 0 0:02:48 0:02:48 --:--:-- 1993k
real 8m38.634s
user 0m0.688s
sys 0m1.026s
κ·Έλ¬λ Docker 컨ν μ΄λλ₯Ό λ€μ μμνλ €κ³ νλ©΄ λ¬Έμ κ° λ°μν©λλ€. Macμ λ¬Έμ λ postgres λ°μ΄ν° λ³Όλ₯¨μ΄ 컨ν μ΄λμ λ§μ΄νΈλλ λ°©μκ³Ό 컨ν μ΄λ λ΄λΆμ νμν κΆνκ³Ό κ΄λ ¨μ΄ μμ΅λλ€. μμΈν λ΄μ©μμ΄ λ¬Έμ μ λν λ€μ μ£Όμμ μ€λͺ λμ΄ μμ΅λλ€.
docker-compose logs -f
κ° ν ν°λ―Έλ μ°½μμ μ€νλκ³ λ€λ₯Έ μ°½μμ μ€νλ©λλ€.
docker-compose restart postgis
docker-compose logs -f
μ°½μ λ€μμ΄ νμλ©λλ€.
stoqs-postgis | chown: changing ownership of '/var/lib/postgresql/data/pg_wal': No such file or directory
stoqs-postgis exited with code 1
κ·Έλ¦¬κ³ postgis λ°μ΄ν°λ² μ΄μ€ 컨ν μ΄λκ° μ 체 STOQS μ±μ μ€ννμ§ μμΌλ©΄ μλνμ§ μμ΅λλ€.
Linux μλ² λλ μν¬ μ€ν μ΄μ μ λ°°ν¬ ν λλμ΄ λ¬Έμ κ° λ°μνμ§ μμ΅λλ€.
postgres μ΄λ―Έμ§μ λν΄ μ€λͺ λ λλ‘ --user μ΅μ μ μ¬μ©νμ¬ postgis 컨ν μ΄λμ μ¬μ©μλ₯Ό μ€μ νλ λ° μ½κ°μ ν¬λ§μ΄μλ κ² κ°μ΅λλ€. μλ§λ μ΄κ²μΌλ‘ μ°λ¦¬λ Mac νΈμ€νΈμ μ¬μ©μ IDλ₯Ό postgis 컨ν μ΄λμ μ¬μ©μ IDμ μΌμΉμν¬ μ μμ΅λλ€.
λ€μμ Macμ Dockerμμ STOQSκ° μλνλλ‘ λ€μν μ€μ μ ν μ€νΈνλ λ¨κ³μ λλ€.
docker-compose logs -f
μ€ννλ νλμ ν°λ―Έλ μ°½μ μ΄μ΄ λ‘λλ€.docker-compose build
λ° docker-compose up -d
λͺ
λ Ή μ€ν$ STOQS_HOME / dockerμμ docker-compose.yml
νμΌμ νΈμ§νμμμ€. postgis μλΉμ€μ λ€μ νμ μΆκ°νμμμ€.
user: 399
μ¬κΈ°μ 399
λ λ΄ Macμμ λ‘κ·ΈμΈ κ³μ μ uidμ
λλ€. ( id -u
λͺ
λ Ήμμ κ°μ Έμ΅λλ€.) κ·Έλ° λ€μ postgis μ΄λ―Έμ§λ₯Ό λ€μ λΉλνκ³ λ€μ λ°°ν¬ν©λλ€.
docker-compose build postgis
docker-compose up -d
λ‘κ·Έ μ°½μλ μλΉμ€κ° λ€μ μμλκ³ λ°λ³΅λλ κ²κ³Ό κ°μ λ΄μ©μ΄ νμλλ λμ νμλ©λλ€.
stoqs | *** Waiting for postgres container ...
μ±κ³΅μ μΈ λ°μ΄ν°λ² μ΄μ€ μ°κ²° λ‘κ·Έ λ©μμ§κ° νμλκ³ κ²°κ΅ https : // localhost μμ μ€νμ€μΈ μΉ μλΉμ€κ° νμλ©λλ€
STOQS μ ν리μΌμ΄μ μ ꡬμ±νλ νμΌμ νΈμ§νκ³ κ΅¬μ±μ΄ μ±κ³΅ν λκΉμ§ λ‘κ·Έ μΆλ ₯μ λͺ¨λν°λ§νλ μ΄λ¬ν λ¨κ³λ₯Ό λ°λ³΅ ν μ μμ΅λλ€.
PR https://github.com/stoqs/stoqs/pull/838μ μ¬μ©νλ©΄ MacOSμμ Docker 컨ν μ΄λλ₯Ό μ€ννκ³ λ€μ μμν μ μμ΅λλ€. λ€μμ MacOSμμ μ μ₯μλ₯Ό 볡μ ν ν λ³κ²½ν΄μΌνλ νμΌμ μ°¨μ΄μ μ λλ€.
git diff
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 7d23d994..f171564f 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -19,7 +19,7 @@ services:
ports:
- "${STOQS_PGHOST_PORT}:5432"
# Set user for deployment on MacOS, assign HOST_ID=<result of `id -u`> in your .env file
- ##user: ${HOST_UID}
+ user: ${HOST_UID}
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- STOQSADM_PASSWORD=${STOQSADM_PASSWORD}
diff docker/template.env docker/.env
16c16
< STOQS_HOME=/vagrant/dev/stoqsgit
---
> STOQS_HOME=/Users/mccann/GitHub/stoqsgit
19c19
< ##HOST_UID=
---
> HOST_UID=399
43c43
< ##CAMPAIGNS_MODULE=stoqs/mbari_campaigns.py
---
> CAMPAIGNS_MODULE=stoqs/mbari_campaigns.py
μ΄κ²μ μ¬μ©μ μ μ λ°μ€ν¬ν μν¬ μ€ν μ΄μ μμμ΄ ν μ€νΈλ₯Ό μ€ν ν κ²°κ³Όμ λλ€.
μ΄μ체μ : Ubuntu 18.04.1
CPU : AMD Ryzen 5 1600
λ©λͺ¨λ¦¬ : 16GB DDR4 @ 3466Mhz
μ€ν λ¦¬μ§ : 512GB NVMe SSD
Docker CE λ²μ : 18.09.1
μΈν°λ· : ~ 70Mbps λ€μ΄λ‘λ
μμμμ λ€λ₯΄κ² ν μ μΌν μΌμ λ°μ΄ν°λ² μ΄μ€λ₯Ό λ§λλ λ° κ±Έλ¦° μκ°μ μΈ‘μ νκΈ° μν΄ -d μ€μμΉμμ΄ docker-composeλ₯Ό μ€ν ν κ²μ λλ€. μ΄λ²μλ NGINXκ° μ€νλλ κ²μλ³΄κ³ CTRL + Cλ₯Ό μ¬μ©νμ¬ μλμΌλ‘ μ’ λ£ν΄μΌνμ΅λλ€. μ€μ μ€ν μκ°λ³΄λ€ μ½κ° μ¦κ° ν μ μμ΅λλ€.
mkdir /tmp/git
cd /tmp/git
time git clone https://github.com/stoqs/stoqs.git stoqsgit
Cloning into 'stoqsgit'...
remote: Enumerating objects: 1081, done.
remote: Counting objects: 100% (1081/1081), done.
remote: Compressing objects: 100% (144/144), done.
remote: Total 58937 (delta 985), reused 1020 (delta 937), pack-reused 57856
Receiving objects: 100% (58937/58937), 197.46 MiB | 8.42 MiB/s, done.
Resolving deltas: 100% (44845/44845), done.
Checking out files: 100% (26469/26469), done.
real 0m26.103s
user 0m9.998s
sys 0m3.263s
# Created STOQS_HOME variable
export STOQS_HOME=/tmp/git/stoqsgit
cd $STOQS_HOME/docker
# Setup .env set STOQS_HOME directory and uncommented CAMPAIGNS_MODULE
cp template.env .env
vi .env
# Output omitted
time docker-compose pull
# Output omitted
real 5m6.275s
user 0m1.388s
sys 0m0.160s
time docker-compose up
# Output omitted
real 6m31.452s
user 0m2.609s
sys 0m0.893s
κ°μ₯ μ μ©ν λκΈ
PR https://github.com/stoqs/stoqs/pull/838μ μ¬μ©νλ©΄ MacOSμμ Docker 컨ν μ΄λλ₯Ό μ€ννκ³ λ€μ μμν μ μμ΅λλ€. λ€μμ MacOSμμ μ μ₯μλ₯Ό 볡μ ν ν λ³κ²½ν΄μΌνλ νμΌμ μ°¨μ΄μ μ λλ€.