以下直接藉由 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 留言