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


* เดี๋ยวเอาไปลองเขียนเป็น docker file ก่อน อันนี้ลองติดตั้ง vscode เปล่าๆ แล้วลองลงโปรแกรมอื่นๆ ในตัว container ถือว่าผ่านแล้ว


Project 

VS Code + Node.js+firebase

# ใช้ 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

Share Storage ให้ container