Coder-Server + LEMP with Docker

Jaedsada Chaisorn
3 min readAug 9, 2019

--

Requirement

  • Docker CE
  • Lemp
  • Coder-server

ติดตั้ง Docker CE

ดาวน์โหลด Docker CE จากที่นี้

หรือถ้าเป็น Ubuntu ดูได้จากนี้

ติดตั้ง LEMP Stack

ในที่นี้ เนื่องจาก ผมใช้ Docker อยู่แล้ว เลย จะเป็น การติดตั้ง Lemp Stack ด้วย Docker

ก่อนอื่น รูปแบบ Directory ผมจะเป็นประมาณนี้

ใน docker-compose.yml จะประกอบด้วย

  • database -> mariadb:10.1
db:
image: mariadb:10.1
container_name: lemp_mariadb
restart: always
volumes:
- ./mysql/data/:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root #กำหนด password user:root
ports:
- 3306:3306

โดยที่ image ที่ใช้ จะเป็น mariadb:10.1

  • php -> php:fpm
php:
build: ./ # จะเป็นการ build file จาก DockerFile ที่เราสร้างไว้อีกที
container_name: lemp_php-fpm
restart: always
volumes:
- ./www/:/var/www/
expose:
- "9000"

แล้วใน DockerFile จะเป็นดังนี้

FROM php:fpm
RUN docker-php-ext-install pdo_mysql \
&& docker-php-ext-install json \
&& docker-php-ext-install bcmath \
&& docker-php-ext-install exif \
&& docker-php-ext-install gd
RUN php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin --filename=composer
EXPOSE 9000
CMD ["php-fpm"]
  • nginx -> nginx:alpine
nginx:
image: nginx:alpine
container_name: lemp_nginx
restart: always
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d:ro
volumes_from:
- php
ports:
- 80:80

ใน volumes -> ./nginx/conf.d/default.conf จะเป็น ประมาณนี้

server {
charset utf-8;
client_max_body_size 128M;
listen 80; ## listen for ipv4
#server_name app-frontend.dev;

root /var/www;
index index.php;
location / {
# Redirect everything that isn't a real file to index.php
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
error_page 404 /404.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_pass php:9000; #php คือ container php จาก docker-compose
try_files $uri =404;
}
location ~ /\.(ht|svn|git) {
deny all;
}
}

จากนั้น จะใช้ คำสั่ง

docker-compose up -d

ติดตั้ง Coder-Server

จะใช้คำสั่ง

cd www && docker run -it -p 8444:8443 -v ${PWD}:/home/coder/project codercom/code-server --allow-http --no-auth

โดยที่ ${pwd} จะเป็น floder /www ซึ่ง เป็นpath ที่เก็บ flie project ต่างๆของเรา

หลังจาก run คำสั่งดังกล่าว

เปิด brower -> http://localhost:8444/

จะได้ประมาณนี้

หาก ต้องการให้มี การ ยืนยันตัวก่อนเข้าถึง coder ก็จะเป็น

cd www && docker run -it -p 8444:8443 -v ${PWD}:/home/coder/project codercom/code-server --allow-http --password=password

เปลี่ยน — no-auth เป็น — password=ตามด้วยรหัส ที่ต้องการจะตั้ง

หน้าตาจะประมาณนี้

coder แบบ มี การยืนยันตัวตน

เพียงเท่านี้และครับ

~

--

--

Jaedsada Chaisorn

ปืน Web Dev พูดไม่ค่อยรู้เรื่องเท่าไร เขียนก็ไม่ได้เลยเช่นกัน