dockerfile.go
๋ผ๋ ํ์ผ์ด ์๋๋ฐ #1908 ๋ก ์ธํด Dockerfile
๋ก ์ธ์๋ฉ๋๋ค.
๋๋ ์ด ๊ฒฐ์ ์ ์์ ์ด #1907์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ๊ทธ๊ฒ์ ํฐ๋ฌด๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. Dockerfile
๊ฐ Unknown
๋ก ์ธ์๋๋ฉด ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ go
ํ์ผ์ด Dockerfile
๋ก ์ฌ์ธ์๋๋ฉด VSCode๋ ์ด๋ฅผ Dockerfile
ํ์์ผ๋ก ์ง์ ํฉ๋๋ค. (ํนํ Format on save
๋ฅผ ์ ํํ์ ๋ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒ ๊ฐ์์.) ์๋ ์คํฌ๋ฆฐ์ท์์ ๋ณผ ์ ์๋ฏ์ด.
๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ์ฝ๋๋ฅผ ๋๋๋ฆฌ๊ณ *.go ํ์ผ ์ฐ๊ฒฐ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. dockerfile ์ฐ๊ฒฐ์ ์ถ๊ฐํ๋ ๊ฒ๋ณด๋ค ๋ ๋ฌด๊ฑฐ์ด ์์ ์ ๋๋ค.
๋ฐ๋ผ์ Dockerfile.*
ํ์ผ ์ฐ๊ฒฐ์ ์ ๊ฑฐํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
Dockerfile.***
๋ผ๋ ์ด๋ฆ์ ์ค์ Dockerfile์ ์ฌ์ฉํ๋ ์ฌ๋์ด Dockerfile์ด ์๋ ์ฌ๋๋ณด๋ค ์๋์ ์ผ๋ก(์ฝ 50๋ฐฐ) ๋ง์์ผ๋ฏ๋ก #1908์ ์ ์งํ ๊ณํ์
๋๋ค. settings.json์์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ก์ ํธ์์ ์ด๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
"files.associations": {
"dockerfile.go": "go"
}
๋๋ ์ด์ #1907์ ์ฝ์๊ณ ๋ง์ ์ฌ๋๋ค์ด Dockerfile.***
๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง Dockerfile.prod
, Dockerfile.dev
๋ฑ์ ์ถ๊ฐํ์ฌ ์ปค๋ฒํ ์ ์์ต๋๋ค. Dockerfile.xxx
๋ฅผ ๊ฐ๋ฅํ ํ ๋ง์ด ์ถ๊ฐํ์ฌ ๋๊ท๋ชจ ๊ทธ๋ฃน์ ์์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ๋น์ ์ด ์๊ทธ๋ฃน์ ๋ค์น๊ฒ ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค.
๊ฒ๋ค๊ฐ Dockerfile.*
ํจํด์ ๋ค๋ฅธ ํ์ฅ์์ ํ์ผ ์ฐ๊ฒฐ์ ์๋ง์ผ๋ก ๋ง๋ค๊ณ ์ถฉ๋์ ์ผ์ผํต๋๋ค.
Dockerfile.prod
,Dockerfile.dev
๋ฑ์ ์ถ๊ฐํ์ฌ ์ปค๋ฒํ ์ ์์ต๋๋ค.
GitHub ๋ฐ ์๊ฒฉ ์ธก์ ์์ ๊ฒ์ํ ๋ ์๋ฐฑ ๊ฐ์ง ํ์ฅ ๊ธฐ๋ฅ์ด ๋๋๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ์ฌ๋ก๋ณ๋ก ์ถ๊ฐํ๋ ๊ฒ์ ์ง์ ๊ฐ๋ฅํ์ง ์์ต๋๋ค.
๊ฒ๋ค๊ฐ
Dockerfile.*
ํจํด์ ๋ค๋ฅธ ํ์ฅ์์ ํ์ผ ์ฐ๊ฒฐ์ ์๋ง์ผ๋ก ๋ง๋ค๊ณ ์ถฉ๋์ ์ผ์ผํต๋๋ค.
์์ธํ ์๋ ค์ฃผ์ค ์ ์๋์? ์ธ์ด ์ฐ๊ฒฐ์ ์ค์ ํ๋ฉด ๋ค๋ฅธ ํ์ฅ์ ์ด๋ค ์ํฅ์ ์ค๋๊น?
์์ธํ ์๋ ค์ฃผ์ค ์ ์๋์? ์ธ์ด ์ฐ๊ฒฐ์ ์ค์ ํ๋ฉด ๋ค๋ฅธ ํ์ฅ์ ์ด๋ค ์ํฅ์ ์ค๋๊น?
์๋ฅผ ๋ค์ด go extension
๋ฅผ ์ค์นํ๋๋ฐ $ dockerfile.go
๋ go file
๋ก ์ธ์๋์ง๋ง docker extension
์ค์น ํ Dockerfile
๋ก ์ธ์๋ฉ๋๋ค.
๋ฌด์จ ๋ง์ธ์ง ์๊ฒ ๋ค. ์ธ์ด ์ฐํฉ์ ์๋ํ ์ ์์ต๋๊น? ๊ทธ๋ฌ๋ฉด dockerfile.go
๊ฐ Go ํ์ผ๋ก ์ทจ๊ธ๋ฉ๋๋ค.
๋ฌด์จ ๋ง์ธ์ง ์๊ฒ ๋ค. ์ธ์ด ์ฐํฉ์ ์๋ํ ์ ์์ต๋๊น? ๊ทธ๋ฌ๋ฉด
dockerfile.go
๊ฐ Go ํ์ผ๋ก ์ทจ๊ธ๋ฉ๋๋ค.
๊ทธ๊ฒ์ ๋๋ฅผ ์ํ ํด๊ฒฐ์ฑ
์ด์ง๋ง ๋ค๋ฅธ ํ์ฅ์์๋ ์ํฅ์ ์ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ฉด Dockerfile.*
ํ์ผ ์ฐ๊ฒฐ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด์ ๊ฐ์ ๊ฒฝ์ฐ Dockerfiles๋ฅผ ๊ณผ๋ถ๋ฅํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ด๊ฐ ์๊ฒฉ ์ธก์ ์์ ๋ณธ ๊ฒ์์ ์ฝ 98%์ ๋นํด Dockerfile์ด ์๋ Dockerfile.*
๋ผ๋ ์ด๋ฆ์ด ์ฝ 2%์์ต๋๋ค.
VSCode์ ํ๊ณ๋ก ์ธํด ์๋ฒฝํ ์๋ฃจ์ ์ ์์ง๋ง ๋ด๊ฐ ๋ณธ ์๋ฐฑ ๊ฐ์ง ๋ณํ์ ๊ฐ๊ฐ ์๋์ผ๋ก ์ถ๊ฐํ๋ ๊ฒ์ ํ์ค์ ์ด์ง ์์ต๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ(์ธ์ด ์ฐ๊ฒฐ ์ค์ )์ด ๊ฐ๊ฐ์ ๋ํด ๋์ผํ๊ธฐ ๋๋ฌธ์ 2% ๋์ 98%์ ๋ํด ์ฌ๋ฐ๋ฅธ ๊ฒ์ ์ํํ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค.
์ซ์ ์ธ์ ๊ณ ๋ คํด์ผ ํ ๋ค๋ฅธ ์์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
dockerfile.go
์ ์์ฑํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ํ์ผ์ ๋ํด ์์ํ๋ ๊ฒ์ go file
๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ํ์ฅ์๊ฐ .go
์ด๋ฏ๋ก Dockerfile
๋ก ์ทจ๊ธํ ์ด์ ๊ฐ ์์ต๋๋ค.
ํ์ง๋ง dockerfile.prod
๋ฅผ ๋ง๋ค ๋ vscode๊ฐ Dockerfile
ํ์์ ์ง์ ํ์ง ์์๋ ๊ด์ฐฎ์ต๋๋ค. Dockerfile.prod
๊ฐ Dockerfile
์ ๊ณต์ ์ด๋ฆ์ด ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค. Dockerfile
๋ฅผ ์ฝ๊ฒ ํธ์งํ ์ ์์ง๋ง ์๋ ํ์ฑ ์์ด go file
๋ฅผ ์ฐ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
์ค์ ๋ก ์ํฉ์ ๊ฐ๋ฅํ ํ ๋ง์ด ๋ค๋ฃจ๊ณ ์ถ๋ค๋ฉด dockerfile์ด FROM
๋ช
๋ น์ด๋ก ์์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ First Line Pattern
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ๋ฌธ์์ ๋์ ์์ต๋๋ค.
์ด firstLine
์์ฑ์ ๋ํด ์กฐ์ฌํ๊ฒ ์ต๋๋ค. ์ง๊ธ๊น์ง๋ ๋ชฐ๋์ต๋๋ค.
perl extension
๋ ์ฒซ ๋ฒ์งธ ์ค ์์ฑ์ ์ฌ์ฉํฉ๋๋ค(https://github.com/microsoft/vscode/blob/7a5bca9fafbbb23de289179be95e9c4832540c02/extensions/perl/package.json#L23).
์ค์ ๋ก ์ํฉ์ ๊ฐ๋ฅํ ํ ๋ง์ด ๋ค๋ฃจ๊ณ ์ถ๋ค๋ฉด dockerfile์ด
FROM
๋ช ๋ น์ด๋ก ์์ํด์ผ ํ๊ธฐ ๋๋ฌธ์First Line Pattern
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ๋ฌธ์์ ๋์ ์์ต๋๋ค.
๊ฐํ์ ๋ฌด์ํ๊ณ ์ ํ ๊ณต๋ฐฑ์ ๊ณ ๋ คํ๋ฉด Dockerfile์ ์ฃผ์(๋๋ ํ์ ์ง์๋ฌธ), ARG
๋ช
๋ น ๋๋ FROM
๋ช
๋ น์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
์์ ํ
์คํธ๋ฅผ ์ํํ๊ณ package.json
First Line Property
๋ฅผ ์ถ๊ฐํ๋๋ฐ ์๋ํฉ๋๋ค.
๊ฐํ์ ๋ฌด์ํ๊ณ ์ ํ ๊ณต๋ฐฑ์ ๊ณ ๋ คํ์ฌ Dockerfile์ ์ฃผ์(๋๋ ํ์ ์ง์๋ฌธ), ARG ๋ช ๋ น ๋๋ FROM ๋ช ๋ น์ผ๋ก ์์ํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ถํํ๋ First Line Property
๋ ์ฃผ์์ผ๋ก ์์ํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
์กฐ์ฌ๋ฅผ ์ข ํด๋ดค์ต๋๋ค. firstLine
์์ฑ์ filenamePatterns
์ ํจ๊ป OR๋ก ์ฒ๋ฆฌ๋๋ฏ๋ก ํ์ผ์ด filenamePatterns
OR firstLine
์ ์ผ์นํ๋ฉด Dockerfile๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ถฉ๋ํ๋ filenamePattern
๊ฐ ์ผ์นํ๋ฉด Dockerfile ๋์ ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, FROM alpine
๋ก ์์ํ๋ "test.py"๋ Python ํ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
"firstLine": "\\s*([Ff][Rr][Oo][Mm].+|#.*|[Aa][Rr][Gg].+)"
๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ ๊ณต๋ฐฑ์ด ํ์ฉ๋๋ฉฐ FROM ...
, ARG ...
, #comments
๋ฐ #parser=directives
๋ชจ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ผ์นํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
"Dockerfile.*" ์ฐ๊ฒฐ์ด ์ ๊ฑฐ๋์๋ค๊ณ ๊ฐ์ ํ ๋ Dockerfile๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋ ๋ช ๊ฐ์ง ์:
๋์ปคํ์ผ.ํ ์คํธ:
FROM alpine
# Because the first line matches
from alpine
# Because the first line matches
# The language server does warn about lowercase
#a leading comment with leading whitespace
FROM alpine
# Because the first line matches
# a leading comment with different leading whitespace
FROM alpine
# Because the first line matches
#fake=parserdirective
FROM alpine
# Because the first line matches
ARG test
FROM alpine
# Because the first line matches
ARG #blah--the language server correctly flags this as an error
FROM alpine
# Because the first line matches
๋์ปค ํ์ผ:
using namespace std;
// Because the file name matches "Dockerfile"
Dockerfile๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋์ง ์๋ ๋ช ๊ฐ์ง ์:
๋์ปคํ์ผ.py:
print('hello world')
# Because the file name matches "*.py" from Python
Dockerfile๋ก ์๋ชป ์ฒ๋ฆฌ๋์ง ์๋ ๋ช ๊ฐ์ง ์:
๋์ปคํ์ผ.ํ ์คํธ:
FROM alpine
# No match on the first line, because it is blank
๋์ปคํ์ผ.py:
FROM alpine
# Because the file name matches "*.py" from Python
@rcjsuen @simpleapples (๋ํ @chrisdoherty4 ๊ฐ #1907์ ์ฒ์ ์ด์์ ๋๋ถํฐ)
์ธ ๊ฐ์ง ๋จ์ ์ด ์์ต๋๋ค.
filenamePattern
์ ์ผ์นํ๋ "Dockerfile.*"์ ํญ์ ํด๋น ์ธ์ด๋ก ์ฌ์ ์๋ฉ๋๋ค(๋ง์ง๋ง ์). ์๋ฅผ ๋ค์ด "Dockerfile.py"๋ ์ ํจํ Dockerfile์ธ ๊ฒฝ์ฐ์๋ Python ํ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.๋ค๋ค ์ด๋ป๊ฒ ์๊ฐํ์ธ์? ์ ๋ ์ฒซ ๋ฒ์งธ ๋จ์ ์ด ์กฐ๊ธ ๋ ๊ฑฑ์ ๋ฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ Dockerfile.* ์ด๋ฆ ์ค ์ผ๋ถ๋ฅผ ๋ค์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ ๋นํ ์ ์์ต๋๋ค. ๋ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ๋ ๋์๊ฒ ์์ฃผ ์ฌ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
@bwateratmsft Dockerfile.sh
์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ด๋ป์ต๋๊น?
#!/bin/sh
docker build .
์
ธ ์ฃผ์ ๊ตฌ๋ฌธ์ #
๊ฐ ์๋ Docker ๋ฐ Python๊ณผ ๋์ผํฉ๋๋ค. ์ด๋ป๊ฒ ํด๊ฒฐ๋ ๊น์?
๋ค๋ค ์ด๋ป๊ฒ ์๊ฐํ์ธ์? ์ ๋ ์ฒซ ๋ฒ์งธ ๋จ์ ์ด ์กฐ๊ธ ๋ ๊ฑฑ์ ๋ฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ Dockerfile.* ์ด๋ฆ ์ค ์ผ๋ถ๋ฅผ ๋ค์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ ๋นํ ์ ์์ต๋๋ค. ๋ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ๋ ๋์๊ฒ ์์ฃผ ์ฌ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
@bwateratmsft ์กฐ์ฌํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ผ์ปค๋ฐ์ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ฃผ ์ฌ์ฉํ๋ dockerfile.xxx
๋ฅผ filenamePattern
์ ์ถ๊ฐํ์ฌ ๋๋ถ๋ถ์ ์ํฉ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. firstLine
๋งค์น๋ ํ๋ B๋ก ๋ณผ ์ ์์ต๋๋ค.
#comment
๋ก ์์ํ๋ ํ์ผ์ ๊ฒฝ์ฐ dockerfile๋ก ์ฒ๋ฆฌ๋์ด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. @rcjsuen ์ด ๋งํ๋ฏ์ด ์ ์คํฌ๋ฆฝํธ ํ์ผ๊ณผ ๊ฐ์ ๋๋ฌด ๋ง์ ์ ํ์ ํ์ผ์ ๊ณต๊ฒฉํฉ๋๋ค.
ํ์ง๋ง ๋๋ถ๋ถ์ ์ํฉ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์์ฃผ ์ฌ์ฉํ๋ dockerfile.xxx๋ฅผ filenamePattern์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ฅ๊ธฐ์ ์ผ๋ก๋ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋งค์ฐ ๊ธด ๊ผฌ๋ฆฌ์ธ #1907์์ ์๋ฐฑ ๊ฐ์ ๊ฐ์ ์ฐพ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ 10๊ฐ๋ฅผ ์ถ๊ฐํด๋ ์ฌ์ ํ ์๋ฐฑ ๋ช ์ ์ฌ๋๋ค์ด ๋น ์ ธ ์์ต๋๋ค.
๋๋ ์์ง Dockerfile.*
๊ฐ ๋ง์ ๋ฌธ์ ์ธ์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด @simpleapples ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉํดํ๋ค๋ ๊ฒ์ ์ ๋์ ์ผ๋ก ์๊ณ ์์ง๋ง ํด๋น ์๋๋ฆฌ์ค์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ด์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ๋ฉฐ ๊ทธ ๋ฐ๋์
๋๋ค. ๊ทธ๋ฌ๋ ์๋ก์ด ๋ฌธ์ ( Dockerfile.*
๋ Dockerfile์ด ์๋์ง๋ง ์ธ์๋จ)๊ฐ ์๋ ์ฌ๋์ ์๋ ์ด์ ๋ฌธ์ ( Dockerfile.*
๊ฐ Dockerfile์ด์ง๋ง ์ธ์๋์ง ์์)๋ณด๋ค ํจ์ฌ ์ ์ต๋๋ค. . ๋ํ, ๋๋ ์ฌ์ ํ dockerfile.go
๋ฐ ์ด์ ์ ์ฌํ ๊ฒ์ด ๋ฐํจํด์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋ ํฐ์ผ์ ์ฌ๋ ธ์ ๋ ๊ฐ๋จํ ๊ธฐ์ฌํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค(๋ณธ์ง์ ์ผ๋ก @bwateratmsft ๋ฅผ ์์ฝ).
์ด๋ฆ ๋ณ๊ฒฝ ๋๋ ์ถ๊ฐ ๊ตฌ์ฑ ๋ผ์ธ์ผ๋ก ์ํํ ์ ์๋ 1๊ฐ์ง ๊ฒฝ์ฐ ๋๋ฌธ์ ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ณด์ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋๋๋ฆฌ๋ ๊ฒ์ ๋ฌด์๋ฏธํฉ๋๋ค.
@simpleapples , dockerfile.go๋ฅผ ์ฌ์ฉํ๋ ํ์ฌ ํ๋ก์ ํธ์์ ๊ณ์ ์ด๋ํ๊ณ ๋ค์๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์์ ๊ฒ์ ๋๋ค.
๋ช ๊ฐ์ง ์ด์ ๋ก ์๋ฒฝํ๊ธฐ ์ด๋ ต๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. Dockerfile
๋ ์ผ๋ฐ์ ์ผ๋ก ํน์ ํ์ผ ํ์ฅ์๊ฐ ์๋ ํน์ ํ์ผ ์ ํ์ด๊ณ VSCode๋ $# filenameMatch
xxx.*
๋ฅผ ํ์ฉํฉ๋๋ค. filenameMatch
.
๋ฐ๋ผ์ #1908์์ ๋๋จธ์ง ๋ณ๊ฒฝ ์ฌํญ์ ์ฃผ์ฅํ๋ฉด ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ ์ ํ์ผ ์ฐ๊ฒฐ์ ์ค์ ํ ์ ์์ต๋๋ค.
@bwateratmsft ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ์ผ๋จ ์ด์ด๋๊ณ ๊ณ์ ์๊ฐํ๋ ค๊ณ ํ๋ค. ์๋ง๋ ํํ์ ํ์์ฑ์ ์ ๊ฑฐํ๋ ํ์ผ ์ด๋ฆ ํจํด, ์ฒซ ๋ฒ์งธ ์ค ํจํด ๋ฐ MIME ์ ํ์ ์กฐํฉ์ด ์์ ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก์ธ ํ
ํ๋ฆฟ ์์ฑ๊ธฐ. ejs ํ์๊ฐ ์๋ Dockerfile.*
๊ท์น์ ์ํด ์ ํ๋๋ Dockerfile.ejs.t
ํ์ผ์ด ์์ต๋๋ค.
๋ด ์ค์ json์์ ๋ค์์ ์ถ๊ฐํ์ต๋๋ค.
{
"files.associations": {
"Dockerfile.ejs.t": "ejs"
}
}
ํ์ง๋ง ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ์ด ์ค์ ์ ํ๊ณผ ๊ณต์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๐
๋ด ์ค์ json์์ ๋ค์์ ์ถ๊ฐํ์ต๋๋ค.
{ "files.associations": { "Dockerfile.ejs.t": "ejs" } }
ํ์ง๋ง ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ์ด ์ค์ ์ ํ๊ณผ ๊ณต์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๐
@TigerC10 ํ๋ก์ ํธ์ .vscode/settings.json
ํ์ผ์ ๋ฃ์ ์ ์๋์?
https://github.com/microsoft/vscode/issues/105590 ์ ์ด์์ต๋๋ค. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ํน์ ์์ธ(์ Dockerfile.go
)๋ฅผ ์ถ๊ฐํ ์ ์๋ ๊ฒ์
๋๋ค. Dockerfiles _์๋_ ๊ณ ์ ํ ํ์ผ ์ด๋ฆ์ ์๋ ๋ง์์ง๋ง Dockerfiles _์๋_ ์๋ ์๋์ ์ผ๋ก ์์ ๋ณด์์ต๋๋ค Dockerfile.go
๊ฐ ์๋ง๋ ๊ฐ์ฅ ํํ ๊ฒ ๊ฐ์์ต๋๋ค. ์ด๋ฅผ ์ ์ธํ ์ ์๋ค๋ฉด ์ธ์ด ๋ถ๋ฅ ์ ํ๋๊ฐ ์๋นํ ํฅ์๋ ๊ฒ์
๋๋ค.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ dockerfile.go
๊ฐ Dockerfile
๋ก ์๋ชป ์๋ณ๋ ํ Change Language Mode
๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ธ์ด๋ฅผ ์ ํํ๋ฉด ๊ตฌ๋ฌธ ๊ฐ์กฐ ํ์๊ฐ ์์ ํ ์๋ง์ด ๋๋ค๋ ๊ฒ์
๋๋ค.
์
์คํธ๋ฆผ https://github.com/microsoft/vscode/issues/105590 ์ด ๊ฑฐ๋ถ๋๋ฉด ์ด๋ฅผ ๋ซ๊ฒ ์ต๋๋ค. Dockerfile.*
๋ฅผ Dockerfile๋ก ์ธ์ํ์ฌ ํ์ฌ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ต์ ์ ์ ๋ต์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ณ์ํด์ ํผ๋๋ฐฑ์ ๋ฐ์ผ๋ฉด ์ฌ๊ณ ํ ์ ์์ต๋๋ค.
@segevfiner Visual Studio Code ์์ฒด์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ๋ํด ์ด๋ ค ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
@rcjsuen ์ฐพ์ ์ ์์ง๋ง ๊ธฐ์กด ํค์๋๋ฅผ ์ฐพ๋ ๋ฐ ์ฌ๋ฐ๋ฅธ ํค์๋๊ฐ ๋ฌด์์ธ์ง ์๋ ์ฌ๋