在PyCharm中配置項(xiàng)目(十二):使用Docker Compose配置遠(yuǎn)程解釋器
PyCharm是一種Python IDE,其帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具。此外,該IDE提供了一些高級(jí)功能,以用于Django框架下的專業(yè)Web開發(fā)。
PyCharm最新版本2019.3現(xiàn)已發(fā)布,增加用于Jupyter筆記本的交互式小部件,MongoDB支持以及所有Python 3.8功能的代碼幫助,還有其他功能改進(jìn)提高Python語言開發(fā)效率!小編已將PyCharm2019.3安裝包上傳至慧都官網(wǎng),感興趣的朋友歡迎下載體驗(yàn)~
摘要
讓我們總結(jié)一下在PyCharm的幫助下所做的事情:
-
我們從GitHub下載了Django應(yīng)用程序并打開了它。
-
我們向項(xiàng)目添加了特定的Docker Compose文件。
-
我們基于Docker Compose配置了一個(gè)遠(yuǎn)程解釋器。
-
我們在Docker Compose容器中運(yùn)行Django應(yīng)用程序。
先決條件
確保滿足以下先決條件:
-
您的網(wǎng)絡(luò)連接穩(wěn)定。
要使用Docker進(jìn)行操作,您需要在計(jì)算機(jī)上使用busybox映像。確保您具有穩(wěn)定的Internet連接,以便PyCharm可以下載并運(yùn)行busybox:latest。成功配置Docker后,您可以脫機(jī)。
-
Docker已安裝。您可以在各種平臺(tái)上安裝Docker,但是在這里我們將使用 Windows 安裝。
請注意,您可能想在不同的平臺(tái)上重復(fù)本教程。然后將Docker安裝用于macOS 和 Linux(Ubuntu,也提供其他與發(fā)行版相關(guān)的說明)。
-
在開始使用Docker之前,請確保已啟用Docker插件。該插件與PyCharm捆綁在一起,并且默認(rèn)情況下處于激活狀態(tài)。如果未激活插件,請?jiān)凇?nbsp;插件”頁面上啟用設(shè)置/首對(duì)話框 Ctrl+Alt+S 中描述 管理插件。
如果您正在使用Windows 的Docker,請?jiān)贒ocker設(shè)置的`` 常規(guī)''部分中啟用tcp:// localhost:2375上沒有TLS選項(xiàng)的Expose守護(hù)程序。
準(zhǔn)備一個(gè)例子
我們實(shí)際上可以重復(fù)使用與Docker相同的示例,但是對(duì)于Docker Compose來說,這沒有意義-太簡單了...
為了顯示Docker Compose應(yīng)用程序的實(shí)際示例,我們將使用Django應(yīng)用程序和在單獨(dú)容器中運(yùn)行的PostgreSQL數(shù)據(jù)庫。 從GitHub獲取項(xiàng)目, 然后在PyCharm中打開它(File | Open)。
對(duì)于這個(gè)Django應(yīng)用程序,我們應(yīng)該創(chuàng)建兩個(gè)容器:一個(gè)用于數(shù)據(jù)庫,另一個(gè)用于應(yīng)用程序本身。我們將使用Docker Compose將兩個(gè)容器鏈接在一起。
為Docker和Docker Compose添加文件
在“項(xiàng)目”工具窗口中,右鍵單擊項(xiàng)目根目錄,然后選擇“ 新建” |“新建”。File Alt+Insert,輸入文件名(此處為Dockerfile),然后輸入以下代碼:
FROM python:3.6.7 WORKDIR /app # By copying over requirements first, we make sure that Docker will cache # our installed requirements rather than reinstall them on every build COPY requirements.txt /app/requirements.txt RUN pip install -r requirements.txt # Now copy in our code, and run it COPY . /app EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]接下來,對(duì)docker-compose.yml文件重復(fù)相同的步驟,然后輸入以下代碼:
version: '2' services: web: build: . ports: - "8000:8000" volumes: - .:/app links: - db db: image: "postgres:9.6" ports: - "5432:5432" environment: POSTGRES_PASSWORD: hunter2讓我們看一下docker-compose.yml文件。該文件定義了2個(gè)服務(wù): web和db,并將它們鏈接在一起。
配置Docker
現(xiàn)在我們已經(jīng)準(zhǔn)備好示例,讓我們配置Docker。
為此,請打開“設(shè)置”對(duì)話框(Ctrl+Alt+S或單擊 主工具欄上的),然后單擊“ 構(gòu)建,執(zhí)行,部署”節(jié)點(diǎn)下的Docker頁面。單擊創(chuàng)建一個(gè)Docker服務(wù)器。
接受建議的默認(rèn)值:
對(duì)于macOS,選擇Docker for Mac連接到Docker守護(hù)程序。
該路徑映射設(shè)置不可用在Linux上。因此,如果要將虛擬機(jī)上的某些目錄映射到本地Linux機(jī)器上的某個(gè)路徑,則必須手動(dòng)執(zhí)行。
接下來,應(yīng)用更改。
將Docker Compose配置為遠(yuǎn)程解釋器
現(xiàn)在讓我們基于Docker-Compose定義一個(gè)遠(yuǎn)程解釋器。
確保已在計(jì)算機(jī)上下載并安裝了Python。
通過以下兩種方式打開“ 添加Python解釋器”對(duì)話框:
-
當(dāng)您在編輯器中時(shí),最方便的方法是使用狀態(tài)欄中的Python Interpreter小部件。單擊小部件,然后選擇添加解釋器...
-
如果在“ 設(shè)置/首選項(xiàng)”對(duì)話框中Ctrl+Alt+S,選擇“ 項(xiàng)目<項(xiàng)目名稱> |項(xiàng)目”。項(xiàng)目口譯員。單擊圖標(biāo),然后選擇添加。
在打開的對(duì)話框中,選擇Docker Compose選項(xiàng),從下拉列表中選擇Docker服務(wù)器,Docker Compose服務(wù)(在此web),配置文件(在此docker-compose.yml)和映像名稱(在此python)。
為什么我們選擇了web?事實(shí)解釋了這一選擇,因?yàn)樵谂渲昧嘶贒ocker-Compose的解釋器之后,我們將能夠創(chuàng)建常規(guī)運(yùn)行配置,這將改變我們選擇的容器的行為。因此,如果要調(diào)試容器中的代碼,則應(yīng)在此處選擇該代碼。compose文件中的所有其他容器將始終與此容器一起啟動(dòng),但是您將無法通過PyCharm影響它們的行為-它們將始終像從命令行docker-compose up中使用命令一樣起作用。
接下來,等待PyCharm啟動(dòng)Docker-Compose配置以進(jìn)行掃描和編制索引:
使用Docker工具窗口
既然我們已經(jīng)配置了Docker,那么服務(wù)工具窗口按鈕將出現(xiàn)在PyCharm主窗口的底部。單擊此按鈕,查看您的容器正在運(yùn)行:
配置數(shù)據(jù)庫憑證
修改Django項(xiàng)目中settings.py文件的DATABASES部分,以添加數(shù)據(jù)庫配置詳細(xì)信息:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'hunter2', 'HOST': 'db' } }
在Docker-Compose下運(yùn)行您的應(yīng)用程序
首先,在執(zhí)行Django應(yīng)用程序時(shí),我們必須運(yùn)行遷移。
為此,選擇“ 工具” |“工具”。運(yùn)行“ manage.py”任務(wù)并輸入migrate:
接下來,創(chuàng)建一個(gè)普通的Django服務(wù)器運(yùn)行/調(diào)試配置。為此,請從主菜單中選擇編輯配置...在打開的對(duì)話框中,單擊為Django服務(wù)器添加運(yùn)行/調(diào)試配置"并選擇Django Server
您唯一需要注意的是,必須將Host字段設(shè)置為 0.0.0.0-以確保我們偵聽來自Docker容器外部的請求。
啟動(dòng)此配置(Run | Run'RunDjangoApp'):
要在Web瀏覽器中查看輸出,請?jiān)L問http:// localhost:8000 (在地址欄中,將0.0.0.0更改為localhost):
如果您使用的是Docker Machine,請改用該計(jì)算機(jī)的IP地址。