Docker - Dockerfile
អ្វីទៅជា Dockerfile?
Dockerfile ជាឯកសារអត្ថបទដែលមាននូវពាក្យបញ្ជាដែលប្រើសម្រាប់ប្រមូលផ្តុំឬបង្កើត
image
។ យើងអាចប្រើពាក្យបញ្ជាទាំងនោះដើម្បីបញ្ជាទៅcommand line
។ Docker ធ្វើការបង្កើតimage
ដោយស្វ័យប្រវត្តិដោយបានអានinstruction
ពីDockerfile
។Docker បានបង្កើតនូវពាក្យបញ្ជាដែលប្រើសម្រាប់បង្កើតនូវ
image
ចេញពីDockerfile
។ អ្នកអាចប្រើស្លាក-f
ជាមួយពាក្យបញ្ជាdocker build
ដើម្បីអាចដៅទៅរកចំណុចដែលDockerfile
ស្ថិតនៅទីតាំងណានៅក្នុងម៉ាស៊ីនរបស់អ្នក។
$ docker build -f /path/to/a/Dockerfile .
Dockerfile Instructions
សម្រាប់
instructions
គឺវាមិនប្រកាន់អក្សរតូចធំទេ ប៉ុន្តែអ្នកគួរតែអនុវត្តទៅតាមអនុសញ្ញាដែលមានការណែនាំឲ្យប្រើអក្សរធំ។Docker ដំណើរការ
instructions
នៃDockerfile
ពីលើចុះក្រោម។Instruction
ទីមួយគឺFROM
ដែលបញ្ជាក់ពីមូលដ្ធានរបស់image
។Statement ដែលចាប់ផ្តើមដោយ
#
គឺចាត់ទុកជាcomment
ហើយក្រៅពីនេះអ្នកអាចប្រើinstructions
ដែលមានដូចជាRUN
,CMD
,FROM
,EXPOSE
,ENV
, និងមានជាច្រើនទៀតនៅក្នុងDockerfile
បាន។
FROM
- Instruction មួយនេះគឺប្រើសម្រាប់កំណត់នូវមូលដ្ធានរបស់
image
ហើយនៅក្នុងDockerfile
គឺទាមទារឲ្យមាននូវinstruction
មួយនេះនៅលើគេ។
FROM node:latest
LABEL
- Instruction មួយនេះគឺប្រើសម្រាប់កំណត់នូវស្លាកទៅឲ្យ
image
ហើយនៅក្នុងDockerfile
គេប្រើinstruction
មួយនេះដើម្បីកំណត់ស្លាកទៅឲ្យimage
។
LABEL maintainer = "CUBETIQ"
WORKDIR
- Instruction មួយនេះគឺប្រើសម្រាប់កំណត់ថតការងារសម្រាប់ណែនាំឲ្យ
instruction
RUN
,CMD
, និងCOPY
ដែលធ្វើតាមនៅក្នុងDockerfile
។ ប្រសិនបើថតការងារមិនត្រូវបានបង្កើតទេ នោះវានឹងបង្កើតដោយខ្លួនឯង។ ម្យ៉ាងវិញទៀតយើងអាចប្រើប្រាស់instruction
មួយនេះបានច្រើនដងក្នុងDockerfile
។
WORKDIR /app
COPY
- Instruction មួយនេះគឺប្រើសម្រាប់ចំលងឯកសារថ្មីឬក៏ថតឯកសារពីប្រភពមួយណាហើយទៅគោលដៅមួយណា។
COPY package*.json ./
RUN
- Instruction មួយនេះគឺប្រើសម្រាប់ដំណើរការនូវពាក្យបញ្ជាទៅកាន់
image
។
RUN npm install
CMD
- Instruction មួយនេះគឺប្រើសម្រាប់ដំណើរការកម្មវិធីដែលត្រូវបាន
build
រួចរាល់របស់image
។ ភាគច្រើនពាក្យបញ្ជាCMD
គឺមិនអាចមានលើសពីមួយបានទេនៅក្នុងDockerfile
តែបើសិនជាមានច្រើនគឺវាប្រតិបត្តិតែពាក្យបញ្ជាណាមួយដែលស្ថិតនៅក្រោយគេតែប៉ុណ្ណោះ។
CMD ["node", "app.js"]