事件
敘述
更新時間
專案上架
Forex-Get-Quotes
2024-09-12
加入排程邏輯
自動化抓取數據
2024-09-12
與 Database 串接
用 Database-Template 完成該功能
2024-12-29
Docker
包裝成服務
2025-01-24
更新 README 說明
Docker & Database 連線問題
2025-01-24
更新撰寫方式
-
2025-09-25
更新專案路徑編排
-
2025-09-25
回補歷史邏輯
-
-
git clone https :// github .com / Junwu0615 / Forex - Get - Quotes .git
pip install - r requirements .txt
記得填寫 .env 或是在 IDE 設定參數 # 可參考下面的描述
Directory Structure Diagram
Forex-Get-Quotes/docker
├── app
│ ├── lib
│ │ ├── __init__.py
│ │ └── utils.py
│ │
│ ├── Entry.py
│ └── requirements.txt
│
└── script
├── .env
├── docker-compose.yaml
└── Dockerfile
md log;
md datasets;
cd docker
STEP.2 新增檔案 : ./script/.env
SQL_SERVER_DRIVER=17
SQL_SERVER_BROKER_HOST=<Your SQL Server IP>,<YOUR SQL Server Port>
SQL_SERVER_LOGIN_USER=<Your User Name>
SQL_SERVER_LOGIN_PASSWORD=<Your User Password>
SCHEDULE_SETTINGS=MTWTFss=22:00:00,MTWTFss=10:00:00 # Linux 時間計算為+0
SAVE_PATH=/builds/rep/datasets
LOG_PATH=/builds/rep/log
FMP_TOKEN=<Your FMP_TOKEN>
TELEGRAM_BOT_TOKEN=<Your TELEGRAM_BOT_TOKEN>
TELEGRAM_CHAT_ID=<Your TELEGRAM_CHAT_ID>
TARGET_LIST=xauusd,eurusd,usdjpy,btcusd,ethusd
INTERVAL_LIST=M1,M5,M15,H1,H4,D1
docker build -t forex-get-quotes:latest -f script/Dockerfile . --no-cache
docker network create --driver overlay open_network
docker stack deploy -c script/docker-compose.yaml forex-get-quotes
STEP.6 檢視 docker service 清單
docker service logs -f forex-get-quotes_task
SELECT name FROM sys .server_principals WHERE name= ' new_user' ;
CREATE LOGIN new_user WITH PASSWORD= ' YourPassword' ;
ALTER LOGIN new_user WITH PASSWORD= ' NewPassword' ;
USE [YourDatabase];
SELECT name FROM sys .database_principals WHERE name = ' new_user' ;
CREATE USER new_user FOR LOGIN new_user;
-- 賦予管理權限
ALTER ROLE db_owner ADD MEMBER new_user;
SQL Server 身份驗證模式設定與調整,變更驗證模式
瀏覽至該路徑: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL{InstanceID}.MSSQLSERVER\LoginMode
改變 LoginMode 數值
1 = 僅允許 Windows 身份驗證
2 = 啟用混合模式 (SQL Server 和 Windows 身份驗證)
儲存更改,然後重新啟動 SQL Server 服務
-- 0:混合模式
-- 1: 僅 Windows 身份驗證
SELECT SERVERPROPERTY(' IsIntegratedSecurityOnly' ) AS AuthenticationMode;
SELECT name, principal_id, type_desc FROM sys .database_principals
SELECT name, principal_id, type_desc FROM sys .server_principals
SELECT * FROM sys .database_role_members WHERE member_principal_id=< principal_id>
DROP USER < user_name>
DROP LOGIN < user_name>
docker exec -it < container id> bash
telnet < SQL Server IP> < port>
Docker container 進去 bash 測試
# 確認是否能連接該位置
telnet < SQL Server IP> < port>
# 確認是否能以該使用者登入資料庫,成功後可下指令測試
sqlcmd -S < SQL Server IP> ,< port> -U < user> -P < password> -d < database>
EXEC xp_readerrorlog 0 , 1 , N' server is listening' ;
瀏覽至該路徑: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
新增 DWORD 32 位元 DisableLoopbackCheck,數值設置 1
法 2. 設定 SPN ( 我沒成功,未來有機會再搞 )
setspn -L <服務帳戶>
# 預期出現
MSSQLSvc/<服務帳戶>:<port>
MSSQLSvc/<服務帳戶>.domain.local:<port>
setspn -A MSSQLSvc/<SQL Server IP>:<port> <服務帳戶>$
setspn -A MSSQLSvc/<服務帳戶>.domain.local:<port> <服務帳戶>$
重啟 SQL server 服務,確認 IP 形式是否能正常連上 Database
E. Data & Reference Sources