以下為所有 Docker Container 設定.
- Dockerfile
- Server採用 Ubuntu 20.04 版本
- 預安裝 Python 3.8
- 預安裝 Python packages, 連結 Database (MySQL & PostgreSQL)
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 -y software-properties-common && \ add-apt-repository ppa:deadsnakes/ppa && \ 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 mechanize && \ python3.8 -m pip install bs4 && \ python3.8 -m pip install cryptography && \ python3.8 -m pip install pycryptodomex && \ 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 vim -y && \ apt-get install python3.8-venv -y && \ apt-get install -y locales && \ apt-get install mysql-client -y && \ apt-get install postgresql-client -y && \ apt-get install python3-mysqldb -y && \ apt-get update && \ pip3 install sqlfluff && \ pip3 install --upgrade pip && \ pip3 install mysqlclient && \ pip3 install Flask-MySQLdb mysql-connector-python WORKDIR /app/de
- docker-compose.yml
- 啟動四個服務:
- Server: Ubuntu 20.04
- Warehousing DB: PostgresSQL
- AirFlowDB: MariaDB
- MySQL: MariaDB
version: '2.0' services: ubuntu: build: context: . dockerfile: Dockerfile image: ubuntu:20.04 container_name: de-2024 volumes: - "../de_project_1/src/main:/app/de" command: /bin/bash stdin_open: true tty: true ports: - "8080:8080" links: - database - airflow - mysqldb 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" airflow: image: mariadb:10.5.8 container_name: de-2024-afdb environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: de MYSQL_USER: admin MYSQL_PASSWORD: admin volumes: - "../mysql:/var/lib/mysql" - "../mysql/data/conf:/etc/mysql/conf.d" - "../logs/db/logs:/var/log" ports: - "3308:3306" mysqldb: image: mariadb:11.3.1 container_name: de-2024-mydb environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: de MYSQL_USER: admin MYSQL_PASSWORD: admin volumes: - "../mariadb:/var/lib/mysql" - "../mariadb/data/conf:/etc/mysql/conf.d" - "../mariadb/logs/db/logs:/var/log" ports: - "3306:3306"
Docker containers
0 留言