嗨大家好,我是Sean!
在昨天我們的實務經驗分享大概到了一個段落了!讓我們來邁向新世界!
從今天到結束,我們每天接觸一項應該得熟悉的後端技能/工具,算是送給鐵人賽的小小挑戰。
好的,那麼我們從Microservice的始祖說起,Docker。
初遇Docker是在某間公司的面試測驗裡,當時並不懂Docker實際上的作用以及它的強大之處,僅會操作他的啟動方法,還有一點基本環境設置。
那麼,甚麼是Docker呢?
Docker是一種工具,使我們可以讓應用程式在容器(container)裡運作。
容器可以把它想像成一種環境的概念,可以把應用程式給包在裡面。
那麼使用Docker的優點是甚麼呢?
首先,我們要做的第一件事,自然是下載Docker囉。
Install Docker Desktop
下載完成後,我們來正式開始建立docker。
打開cmd,安裝成功後,輸入指令可以看到我們目前的docker版本:
docker version
另外,在安裝完成Docker Desktop的時候:
他其實已經自動幫我們安裝另外一個所需要的套件了!
docker-compose version
輸入以上的指令來確認我們的版本,以及確認安裝完成。
我們建立一個資料夾,來放入requirements.txt、Dockerfile以及docker-compose.yml的檔案。
requirements.txt的內容,跟我們之前在部署GCP時,使用的檔案一樣,這裡就不贅述了!
pip freeze > requirements.txt
Dockerfile的話,主要是寫docker的設定檔。
# Dockerfile
FROM python:3.8-alpine
ENV PYTHONBUFFERED 1
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt
RUN mkdir /app
WORKDIR /app
COPY ./app /app
最後則是我們 docker-compose.yml,主要用來定義compose的功能對象以及指令。
其中的縮排都很重要,所以還請務必小心縮排的問題。
# docker-compose.yml
version: "3"
services:
app:
build:
context: .
ports:
- "8080:8080"
volumes:
- ./app:/app
command: >
sh -c "python manage.py runserver 0.0.0.0:8080"
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: 'db'
MYSQL_USER: 'admin'
MYSQL_PASSWORD: 'admin'
MYSQL_ROOT_PASSWORD: 12345678
ports:
- '3306:3306'
完成後,我們就可以來啟動docker-compose
docker-compose build
完成以後,我們就可以透過docker的指令,來建立django的專案
docker-compose run app sh -c "django-admin startproject app ."
新增完專案後,我們就可以啟動docker-compose來啟動專案啦!
接著,我們就輸入指令:
docker-compose up
那麼,今天的文章就先到此結束! 感謝大家的收看!
我是Sean,你各位海上的人,我們明天見!