๐Ÿ“—
smiley book
  • Smiley Books
  • AI
    • Readme
    • openai-whisper
      • ์ƒ˜ํ”Œ ์‹คํ–‰ํ•ด๋ณด๊ธฐ
      • GPU ์„œ๋ฒ„ ์ค€๋น„ํ•˜๊ธฐ
      • API๋กœ whisper๋ฅผ ์™ธ๋ถ€์— ์˜คํ”ˆํ•˜๊ธฐ
      • ํ”„๋กฌํ”„ํŠธ ์ง€์›
      • ์‹ค์‹œ๊ฐ„ message chat
      • ํ™”๋ฉด ์ด์˜๊ฒŒ ๋งŒ๋“ค๊ธฐ์™€ ๋กœ๊ทธ์ธ
      • ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ
      • ์‹ค์‹œ๊ฐ„ voice chat
      • fine tunning(๋ฏธ์„ธ ์กฐ์ •) ์œผ๋กœ ์„ฑ๋Šฅ ์˜ฌ๋ฆฌ๊ธฐ
      • app์—์„œ api๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ…์ŠคํŠธ๋กœ ๋ฐ”๊ฟ”๋ณด๊ธฐ
    • ollama - llm์„ ์‰ฝ๊ฒŒ ๋‚ด์ปด์—์„œ ์‹คํ–‰
      • ollama webui
      • ollama docker
    • stable diffusion
      • SDXL - text to image
      • SD-webui
    • ChatGPT
      • ๋‹ต๋ณ€์ด ๋Š๊ธธ๋•Œ
      • ์—ญํ• ์„ ์ •ํ•˜์ž
      • ๊ตฌ์ฒด์ ์ธ ์งˆ๋ฌธ
      • ๊ฒฐ๊ณผํ˜•ํƒœ๋ฅผ ์ง€์ •
      • ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—ฌ๋Ÿฌ์ค„๋กœ ์‚ฌ์šฉํ•˜์ž.
      • ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ ๊ธ€ ๋ฒˆ์—ญ๋ณธ
    • Prompt Engineering
    • Auto-GPT
    • Gemini
      • google ai studio
      • gemini-api
      • embedding guide
    • Huggingface
      • huggingface ์‚ฌ์šฉ๋ฒ•
      • huggingface nlp ๊ณต๋ถ€์ค‘
    • kaggle
      • download dataset
    • langchain
      • langchain์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌ
      • basic
      • slackbot
      • rag
      • document-loader
      • website-loader
      • confluence
      • memory
      • function-call
      • langsmith
      • agent-toolkit
  • Ansible
    • templates vs files and jinja2
    • dynamic inventory
    • limit ์˜ต์…˜ ๊ฐ•์ œํ•˜๊ธฐ
    • limit ์‚ฌ์šฉํ›„ gather_fact ๋ฌธ์ œ
  • AWS
    • AWS CLI
    • EKS
      • cluster manage
      • ALB Controller
      • external-dns
      • fargate
    • ECR
    • S3
    • Certificate Manager
  • Azure
    • Azure AD OAuth Client Flow
  • Container
    • Registry
    • ๋นŒ๋“œ์‹œ์— env๊ฐ’ ์„ค์ •ํ•˜๊ธฐ
  • DB
    • PXC
      • Operator
      • PMM
      • ์‚ญ์ œ
      • GTID
      • Cross Site Replication
    • Mssql
    • Mysql
  • dotnet
    • Thread Pool
    • Connection Pool
    • Thread Pool2
  • Devops
    • Recommendation
  • GIT
    • Basic
    • Submodule
  • GitHub
    • Repository
    • GitHub Action
    • GitHub PR
    • Self Hosted Runner
    • GitHub Webhook
  • GitLab
    • CI/CD
    • CI/CD Advance
    • Ssl renew
    • CI/CD Pass env to other job
  • Go Lang
    • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•
    • multi os binary build
    • kubectl๊ฐ™์€ cli๋งŒ๋“ค๊ธฐ
    • azure ad cli
    • embed static file
    • go study
      • pointer
      • module and package
      • string
      • struct
      • goroutine
  • Kubernetes
    • Kubernetes๋Š” ๋ฌด์—‡์ธ๊ฐ€
    • Tools
    • Install with kubespray
    • Kubernetes hardening guidance
    • 11 ways not to get hacked
    • ArgoCD
      • Install
      • CLI
      • Repository
      • Apps
      • AWS ALB ์‚ฌ์šฉ
      • Notification slack
      • Backup / DR
      • Ingress
      • 2021-11-16 Github error
      • Server Config
      • auth0 ์ธ์ฆ ์ถ”๊ฐ€(oauth,OIDC)
    • Extension
      • Longhorn pvc
      • External dns
      • Ingress nginx
      • Cert Manager
      • Kube prometheus
    • Helm
      • Subchart
      • Tip
    • Loki
    • Persistent Volume
    • TIP
      • Job
      • Pod
      • Log
  • KAFKA
    • raft
  • KVM
    • kvm cpu model
  • Linux
    • DNS Bind9
      • Cert-Manager
      • Certbot
      • Dynamic Update
      • Log
    • Export and variable
    • Grep ์‚ฌ์šฉ๋ฒ•
  • Modeling
    • C4 model introduce
    • Mermaid
    • reference
  • Monitoring
    • Readme
    • 0. What is Monitoring
    • 1. install prometheus and grafana
    • 2. grafana provisioning
    • 3. grafana dashboard
    • 4. grafana portable dashboard
    • 5. prometheus ui
    • 6. prometheus oauth2
    • Prometheus
      • Metric type
      • basic
      • rate vs irate
      • k8s-prometheus
    • Grafana
      • Expolorer
    • Node Exporter
      • advance
      • textfile collector
  • Motivation
    • 3 Simple Rule
  • OPENNEBULA
    • Install(ansible)
    • Install
    • Tip
    • Windows vm
  • Reading
    • comfort zone
    • ๋ฐฐ๋ ค
    • elon musk 6 rule for insane productivity
    • Feynman Technique
    • how to interview - elon musk
    • ๊ฒฝ์ฒญ
    • Readme
  • Redis
    • Install
    • Master-slave Architecture
    • Sentinel
    • Redis Cluster
    • Client programming c#
  • SEO
    • Readme
  • Security
    • criminalip.io
      • criminalip.io
  • Stock
    • robinhood-python
  • Terraform
    • moved block
    • output
  • vault
    • Readme
  • VS Code
    • dev container
    • dev container on remote server
  • Old fashione trend
    • curity
    • MAAS
      • Install maas
      • Manage maas
      • Tip
Powered by GitBook
On this page
  • 1. install docker
  • 2. install vscode
  • 3. install vscode extension
  • 4. create dev container
  • setup dev container
  • dev container ์‹คํ–‰
  • python code ์‹คํ–‰
  • repoen project
  • ์‹ฌํ™”๊ณผ์ •
  • devcontainer.json ํŒŒ์ผ์„ ์ˆ˜์ •
  • extension
  • ์ข€๋” ์‹ฌํ™” ๊ณผ์ •
  • todo

Was this helpful?

  1. VS Code

dev container

PreviousReadmeNextdev container on remote server

Last updated 1 year ago

Was this helpful?

1. install docker

install docker

2. install vscode

install vscode

3. install vscode extension

install dev container extension

4. create dev container

ํ˜„์žฌ ๋กœ์ปฌ์— python์€ ์„ค์น˜๊ฐ€ ์•ˆ๋˜์ž‡๊ณ  vs code python๊ด€๋ จ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์„ค์น˜๊ฐ€ ์•ˆ๋˜์žˆ๋‹ค.

no python extension

python ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด๊ณ  ์‹คํ–‰์„ ๋ˆŒ๋Ÿฌ๋ณด์ž.

์—๋Ÿฌ ๋‚œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  python์„ ์„ค์น˜ํ•˜๋ผ๊ณ  ํ•œ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์„ ๊ฑด๋“œ๋ฆฌ์ง€์•Š๊ณ  ๋ชจ๋“ ๊ฑธ ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด์•„์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค.

๊ทธ๋ž˜์„œ dev container๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

setup dev container

cmd + shift + p

add dev container

ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ์„ ํƒํ•˜์ž ๋‚œ python

3.10 bullseye

์ถ”๊ฐ€ ๊ธฐ๋Šฅ (์ผ๋‹จ ํŒจ์Šค)

๋‹ค์‹œ vscode ์—ด๊ธฐ

๋กœ๊ทธ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋กœ๊ทธ๋ฅผ ๋ณผ์ˆ˜์žˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ํ•œ๊ฑธ ์ •๋ฆฌํ•˜๋ฉด ๋ณ„๊ฑฐ ์—†๋‹ค. ์ •๋ฆฌํ•˜๋ฉด

  1. .devcontainer ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ 

  2. ๊ทธ์•ˆ์— devcontainer.json์„ ๋งŒ๋“ค๊ณ 

  3. ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

dev container ์‹คํ–‰

๋‹ค์‹œ ๋กœ๋”ฉ์„ ํ•˜๋ฉด docker image๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋Š”๋ฐ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฐ๋‹ค.

์ผ๋‹จ ๊ธฐ๋ณธ ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

{
	"name": "Python 3",
	"image": "mcr.microsoft.com/devcontainers/python:1-3.10-bullseye"
}

๋‹ค์‹œ ๋กœ๋”ฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ธ๋‹ค.

plugin์„ ํ™•์ธํ•ด๋ณด๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ 2๊ฐœ์˜ ์ฐฝ์ด ๋ณด์ด๋ฉฐ ๊ฐ๊ฐ ์„ค์น˜๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ‘œ์‹œ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ž ๊น ์™œ ์ปจํ…Œ์ด๋„ˆ์— ๋งŽ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์„ค์น˜๋˜์—ˆ๋Š”๊ฐ€?

ms์—์„œ ๊ธฐ๋ณธ ์ œ๊ณตํ•œ python container๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์•„๋งˆ ๋‹ค์Œ๊ธ€์— ์ž์„ธํ•œ ์„ค๋ช… ์˜ˆ์ • //todo

python code ์‹คํ–‰

๋‹ค ๋ฌ๋‹ค ์ด์ œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด ๋ณด์ž.

์‹คํ–‰ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋ณด์ž.

์ผ๋‹จ ์‚ฌ์šฉ์•ˆํ•จ์œผ๋กœ ํ•˜์ž.

์‹คํ–‰ํ•˜์ž. ์—๋Ÿฌ..

์‹คํ–‰์€ ๋˜์—ˆ์œผ๋‚˜ ํ•„์š”ํ•œ ๋ชจ๋“ˆ์ด ์„ค์น˜๊ฐ€ ์•ˆ๋˜์ž‡๋Š”๋“ฏ ์‹ถ๋‹ค.

์„ค์น˜ํ•˜์ž.

pip: -r requirements.txt

๋‹ค์‹œ ์‹คํ–‰ํ•˜์ž.

๋™์ž‘ํ•œ๋‹ค.

repoen project

ํ”„๋กœ์ ํŠธ๋ฅผ vscode๋กœ ์—ฐ๋‹ค.

cmd + shift + p > Dev Containers: Reopen in Container

๋นŒ๋“œํ•˜๋ฉด์„œ ์˜คํ”ˆํ•œ๋‹ค.

์‹ฌํ™”๊ณผ์ •

์—ฌ๊ธฐ์„œ ๋‹ค์–‘ํ•œ ์„ค์ •์„ ๋ณผ์ˆ˜์žˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋„์›€์ด ๋œ๋‹ค.

devcontainer.json ํŒŒ์ผ์„ ์ˆ˜์ •

{
  "name": "Python 3",
  "image": "mcr.microsoft.com/devcontainers/python:1-3.10-bullseye"
}

name์„ ์ˆ˜์ •ํ• ์ˆ˜ ์žˆ๋‹ค.

docker image๋„ ๋„ฃ์„์ˆ˜ ์žˆ๋‹ค.

"postCreateCommand": "pip3 install --user -r requirements.txt"

์•ž์—์„œ๋Š” ์ˆ˜๋™์œผ๋กœ package๋ฅผ ์„ค์น˜ํ•ด์•ผํ–‡๋Š”๋ฐ ์œ„ ์ปค๋งจ๋“œ๋ฅผ ๋„ฃ์œผ๋ฉด ๋นŒ๋“œํ•˜๋ฉด์„œ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•ด์ค€๋‹ค.

jsonํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค์Œ ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค.

๋‹ค์‹œ ๋นŒ๋“œํ•˜์ž.

ํ˜น์‹œ ์ฐฝ์ด ์‚ฌ๋ผ์ง€๋ฉด ์•„๋ž˜์ชฝ์— ์ข…๋ชจ์–‘์„ ๋ˆŒ๋Ÿฌ๋ณด๋ฉด ๋ณด์ธ๋‹ค.

์•„๋‹ˆ๋ฉด ๋‹ค์‹œ ์—ด๋ฉด ๋œ๋‹ค.(์ปจํ…Œ์ด๋„ˆ์—์„œ ๋‹ค์‹œ ์—ด๊ธฐ)

์ž๋™์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค.

๋งŽ์€ ์˜ต์…˜์ด ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ์„ ํ™•์ธํ•œ๋‹ค.

forwardPorts ๋ฅผ ํ•ด๋ณด์ž.

"forwardPorts": [
    3000,
    "serviceb:3000",
    "db:5432"
],
"portsAttributes": {
    "3000": {
        "label": "Service A (Main)"
    },
    "serviceb:3000": {
        "label": "Service B"
    },
    "db:5432": {
        "label": "Database Postgress"
    }
},

ํฌํŠธ๊ฐ€ ์˜คํ”ˆ๋œ๋‹ค.

extension

๋‚ด๊ฐ€ ์„ค์น˜ํ•˜๋ผ๊ณ  ํ•˜์ง€ ์•Š์•˜๊ณ  ์„ค์น˜๋˜์–ด์žˆ๋Š”๊ฑธ๋กœ ๋ณด์•„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

docker image์— ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋‹ค.

ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์ž‡๋Š” docker image์—๋Š” ์ž์ฒด์ ์ธ devcontainer.json ์ด ์žˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  devcontainer.json์€ ์œ„ ํŒŒ์ผ์— ์ถ”๊ฐ€๊ฐ€ ๋˜๋Š” ํ˜•์‹์ด๋‹ค.

์—ฌ๊ธฐ์—์„œ ๊ธฐ๋ณธํŒŒ์ผ๋“ค์„ ๋ณผ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  python3์˜ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ ๊ฒฝ๋กœ์— ์žˆ๋‹ค.

์ด๊ฒƒ๋“ค์„ ์„ค์น˜ํ•˜๊ณ  ์žˆ๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” extension์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ ํ•˜์ž.

indent-rainbow๋ฅผ ์„ค์น˜ํ•˜์ž.

์‹๋ณ„์ž๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค.

"customizations": {
  "vscode": {
    // Add the IDs of extensions you want installed when the container is created.
    "extensions": [
      "oderwat.indent-rainbow",
    ]
  }
},

์„ค์น˜๊ฐ€ ๋œ๋‹ค.

์ข€๋” ์‹ฌํ™” ๊ณผ์ •

์ด์ œ ๋‚˜๋งŒ์˜ ๋„์ปค๋กœ ์‚ฌ์šฉํ•ด๋ณผ๊ฐ€?

Dockerfile์„ ๋งŒ๋“ค์ž.

FROM nvcr.io/nvidia/tensorflow:23.12-tf2-py3

WORKDIR /code

COPY ./requirements.txt ./

RUN pip install --upgrade pip

RUN pip install -r requirements.txt

WORKDIR /code/src

CMD [ "python", "app.py" ]

์ด์ œ devcontainer.json์„ ์ˆ˜์ •ํ•˜์ž.

{
  // "image": "mcr.microsoft.com/devcontainers/python:1-3.10-bullseye",
  "build": {
    "dockerfile": "Dockerfile",
    "context": ".."
  },
  "postCreateCommand": "pip3 install --user -r requirements.txt"
}

๋‹ค์‹œ ๋นŒ๋“œํ•˜์ž.

๋™์ž‘ํ• ๊ฒƒ์ด๋‹ค.

docker-compose.yml๋„ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค.

"dockerComposeFile": "docker-compose.yml",
"service": "python", // yml์—์„œ service ์ด๋ฆ„
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}"
# docker-compose.yml
version: '3.8'
services:
  python:
    build:
      context: ../
      dockerfile: ../Dockerfile
    volumes:
      - ..:/workspaces:cached
    command: /bin/sh -c "while sleep 1000; do :; done"

todo

๋ฐ”๋น ์„œ ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€..๊ทธ๋Ÿฐ๋ฐ ์บ์‹œ๋Š” ์–ด๋ฏ๊ฒŒ?

  • cache

  • remote ์„œ๋ฒ„์— ์ž‡๋Š” docker

  • cli

๊ทธ๋Ÿฐ๋ฐ ์•„๋ž˜ ์ต์Šคํ…์…˜์€ ์™œ ์„ค์น˜๊ฐ€ ๋œ๊ฑธ๊ฐ€์š”?

https://containers.dev/
https://containers.dev/implementors/spec/
https://containers.dev/implementors/json_reference/
https://github.com/microsoft/vscode-dev-containers/blob/main/.devcontainer/devcontainer.json
https://github.com/microsoft/vscode-dev-containers/blob/main/containers/python-3/.devcontainer/devcontainer.json
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text