vscode
Dockerfile VS code
ทำ dockerfile run container image ของ vscode เมื่อเข้าไปดูพบว่าใช้ bash zsh ไม่สามารถใช้ powershell ใน image container นี้ได้ จึงต้องหันไปใช้คำสั่งทาง bash ในการติดตั้ง nodejs โดยตรวจสอบว่าติดตั้งได้หรือจากคำสั่ง node -v กับ npm -v ที่จะถูกติดตั้งมาพร้อม node ที่เช็ค npm เพราะต้องลง firebase โดยใช้ npm install
เมื่อ Run VScode แล้ว ใช้ bash
sudo apt install curl
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v #ถ้าแสดง version คือติดตั้งได้แล้ว
npm -v #ถ้าต้องติดตั้งเอง sudo apt install npm
แก้ไข #path ที่ติด pemisiion ระบุแค่ /usr/bin/
sudo chown -R $USER:$GROUP /usr/bin/
หากติดตั้งโปรแกรมแล้วต้องแก้ไขโดยทำการโอนสิทธิ์ก่อน แล้วค่อยติดตั้งโปรแรกมแกรมต่อไป
npm install -g npm #ติดตั้ง npm version ใหม่
npm install -g firebase-tools #ติด Error อยู่ ต้องแก้ permision ก่อนติดตั้ง
แก้ไขสิทธิ์ https://nextflow.in.th/2019/node-error-unhandled-rejection-error-eacces-permission-denied/
* เดี๋ยวเอาไปลองเขียนเป็น docker file ก่อน อันนี้ลองติดตั้ง vscode เปล่าๆ แล้วลองลงโปรแกรมอื่นๆ ในตัว container ถือว่าผ่านแล้ว
ตัดคำสั่ง sudo ออกเพราะทำในฐานะ root
ใช้คำสั่ง USER root เพื่อขจัดปัญหา permission ก่อนการติดตั้ง
Project
VS Code + Node.js+firebase
Docker file
app.js
setting.json
Docker file
# ใช้ base image ของ VS Code หาจาก Docker hub #
FROM codercom/code-server
#FROM node
#FROM stefanscherer/node-windows
# ทำการตั้งค่าพื้นฐาน หากคุณต้องการปรับแต่งตามความต้องการเฉพาะของคุณ ให้แก้ไขในส่วนนี้
#------ add user ไม่แน่ใจว่าเกี่ยวกับ yaml ไหม -----#
ENV USER=cyber
ENV PASSWORD=cyber
ENV PORT=8080
# กำหนด working directory ใน image เป็น "/app" หลังจากนี้ใช้ ./
WORKDIR /app
#WORKDIR /home/${USER}
# คัดลอกไฟล์การตั้งค่าสำหรับ VS Code #
# COPY settings.json /home/${USER}/.local/share/code-server/User/settings.json
# COPY settings.json /home/coder/.local/share/code-server/User/settings.json
COPY settings.json ./
#********** Install Program ตามลำดับ ก่อนติดตั้งเปลี่ยน root **********#
# เปลี่ยนเจ้าของไฟล์ #RUN chown -R ${USER}:${USER} /home/${USER}/.local
#----กำหนด/เปลี่ยน user เป็น root ก่อน เพื่อจัดการ permission ต้องเปลี่ยนก่อนติดตั้ง 1 บรรทัด-----#
USER root
RUN apt-get install -y curl && apt-get update
# การใช้ FROM node รวมถึงการระบุ version ทำให้ build ไม่ผ่าน หากผ่านจะติดปัญหา container stop อัตโนมัติ
#-------------- ติดตั้งจาก website --------------#
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs
#RUN npm install #ไปติดตั้งที่ json
RUN npm install -g npm
RUN npm install axios
RUN npm install -g firebase-tools
#********** End Install Program **********#
COPY . ./
#-----ติดตั้งเสร็จแล้วเปลี่ยน USER -----#
# ตั้งค่า user และเข้าใช้ shell เมื่อมีการเข้าสู่ระบบ ถ้าต้องแอดใหม่ ควรอยู่หลัง USER root
RUN useradd -ms /bin/bash cyber
#/USER cyber
USER ${USER}
# เปิดพอร์ต 9090 เพื่อให้สามารถเข้าถึง VS Code ผ่านเบราว์เซอร์ #
EXPOSE ${PORT}
# เริ่มต้นการทำงานของ code-server เมื่อเริ่ม container
#-----เหมือนเปิดไฟล์เปล่าๆ ขึ้นมา สั่งให้เปิดไฟล์ welcome ได้ไหม? -----#
#CMD ["code-server"]
CMD ["npm", "start"]
2. app.js
...
2. app.js
3. setting.jsonDocker file
...
Firebase login
กรณีที่ต้องเชื่อมต่อ firebase ต้อง login ก่อนดังนี้
firebase login
เปิดลิงค์ เลือก account login
อาจต้องย้อนกลับมาเปิด ให้ forward port ผ่านลิงค์ที่ vacode
เปิดลิงค์เพื่อยืนยัน SessionID
ยืนยันว่า Session ID ถูกต้อง จะได้ code มาใส่ ถือว่า login สำเร็จ
กรอก code ใน VS Code terminal bash