Coder-Server + LEMP with Docker
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 gdRUN 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 ต่างๆของเรา
เปิด 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=ตามด้วยรหัส ที่ต้องการจะตั้ง
หน้าตาจะประมาณนี้
เพียงเท่านี้และครับ
~
Ref :