以下直接藉由 container 設定檔來說明.
1. Dockerfile: 這是一個 Dockerfile 的設定檔, 定義了 Unix 的OS, 及需要安裝的 Packages.
- #1: 設定告訴 Docker, OS為 Ubuntu , 版本為 20.04
- #2: 先把互動訊息關閉
- #4: 把工作目錄換到 app, 安裝一些必要的 app.
- #~: 下面我們先安裝 Python3 和 常用的 unix 工具.
- #-1: 最後, 把目錄換回de
FROM ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
WORKDIR /usr/src/app
RUN apt-get update && \
apt-get install -y sudo && \
apt-get install -y iputils-ping && \
apt-get install -y --no-install-recommends apt-utils && \
apt-get install python3.8 -y && \
apt-get update -y && \
apt-get install -y pkg-config python3.8-dev libmysqlclient-dev build-essential && \
apt-get install -y git && \
apt-get install -y python3-pip && \
apt-get -y install unixodbc-dev && \
python3.8 -m pip install pip --upgrade && \
python3.8 -m pip install psycopg2-binary && \
python3.8 -m pip install sensible && \
python3.8 -m pip install pandas && \
python3.8 -m pip install numpy && \
python3.8 -m pip install scikit-learn && \
python3.8 -m pip install pyspark && \
apt-get install -y python-setuptools && \
apt-get install -y libssl-dev && \
apt-get install -y libffi-dev && \
apt-get install -y libkrb5-dev && \
apt-get install -y postgresql-client -y && \
apt-get install curl -y && \
apt-get install unzip && \
apt-get install vim -y && \
apt-get install python3.8-venv -y && \
apt-get install -y locales && \
apt-get install postgresql-client -y && \
apt-get update && \
pip3 install sqlfluff && \
pip3 install --upgrade pip
WORKDIR /app/de
2. docker-compose.yml: 接著來設定需要啟動的 containers. 以下我們打算啟動兩個服務, Ubuntu OS 系統 和 PostgreSQL DB.
- #1: 第一行是文件版本, 可以依照文檔的不斷更新, 進版版號. 此版說明文件, 先定為初始1.0版.
- #2: 接下來需要定義要啟動的服務. 本立要啟動的是 一個 Unix 和 一個 Database. #4 和 #19 為服務的名稱.
- #7 & #20: 採用的 imageISO 名稱.
- #4: Ubuntu 的配置文件, 也就是上面的 Dockerfile.
- #9 & #26: 為 container 內部folder 和 外部folder 的連結.
- #14 & #29: 連結 port #
- #17: 我們希望 Ubuntu可以存取 Database, 所以在這邊加上連結.
version: '1.0'
services:
ubuntu:
build:
context: .
dockerfile: Dockerfile
image: ubuntu:20.04
container_name: de-2024
volumes:
- "../de_project/src/main:/app/de"
command: /bin/bash
stdin_open: true
tty: true
ports:
- "8080:8080"
links:
- database
database:
image: postgres:14.0
container_name: de-2024-pgdb
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- "../postgres:/var/lib/postgresql/data"
- "../logs/db/logs:/var/log"
ports:
- "5432:5432"
設定好了兩個檔案, 即可開啟 terminal, build up containers.
~ docker-compose -f docker-compose.yml up --build
進入到 Ubuntu container, 其中 de-2024 為 container 名稱, 如果你的名稱, 這邊也需要修改, 才能進到 container 裡面.
~ docker exec -ti de-2024 bash
到此環境已經設定完成, 我們就可以開始程式的開發.
0 留言