t
This commit is contained in:
@@ -36,10 +36,10 @@ TAR_FILE="${IMAGE_NAME}-${IMAGE_TAG}.tar" # 压缩包文件名
|
|||||||
PLATFORM="linux/amd64" # 默认架构
|
PLATFORM="linux/amd64" # 默认架构
|
||||||
ARCH_SUFFIX="" # 架构后缀,用于区分不同架构的tar文件
|
ARCH_SUFFIX="" # 架构后缀,用于区分不同架构的tar文件
|
||||||
# 默认使用华为云源 (AMD64速度快)
|
# 默认使用华为云源 (AMD64速度快)
|
||||||
BASE_IMAGE="swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.9-slim"
|
# BASE_IMAGE="swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.9-slim"
|
||||||
if [ "$PLATFORM" = "linux/arm64" ]; then
|
# if [ "$PLATFORM" = "linux/arm64" ]; then
|
||||||
BASE_IMAGE="docker.m.daocloud.io/python:3.9-slim"
|
# BASE_IMAGE="docker.m.daocloud.io/python:3.9-slim"
|
||||||
fi
|
# fi
|
||||||
# 颜色输出
|
# 颜色输出
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
@@ -128,7 +128,7 @@ build_image() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 构建镜像并导出为tar文件
|
# 构建镜像并导出为tar文件
|
||||||
docker buildx build --platform $PLATFORM --build-arg BASE_IMAGE="${BASE_IMAGE}" -t "${IMAGE_NAME}:${IMAGE_TAG}" --output type=docker,dest="./${TAR_FILE}" .
|
docker buildx build --platform $PLATFORM -t "${IMAGE_NAME}:${IMAGE_TAG}" --output type=docker,dest="./${TAR_FILE}" .
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
log_success "Docker 镜像构建完成: ${TAR_FILE}"
|
log_success "Docker 镜像构建完成: ${TAR_FILE}"
|
||||||
@@ -192,8 +192,12 @@ deploy_on_server() {
|
|||||||
|
|
||||||
# 创建并使用.env文件中的变量
|
# 创建并使用.env文件中的变量
|
||||||
echo "[INFO] 启动新容器..."
|
echo "[INFO] 启动新容器..."
|
||||||
sudo docker run -d -p ${LOCAL_PORT}:${CONTAINER_PORT} --name ${CONTAINER_NAME} \
|
# 使用 host 网络模式,让容器直接使用宿主机网络栈,从而可以通过 localhost:5432 访问宿主机数据库
|
||||||
|
# 同时覆盖环境变量,强制使用本地数据库配置
|
||||||
|
sudo docker run -d --network host --name ${CONTAINER_NAME} \
|
||||||
--env-file /tmp/.env \
|
--env-file /tmp/.env \
|
||||||
|
-e DB_HOST=localhost \
|
||||||
|
-e DB_PORT=5432 \
|
||||||
${IMAGE_NAME}:${IMAGE_TAG}
|
${IMAGE_NAME}:${IMAGE_TAG}
|
||||||
|
|
||||||
# 验证容器是否启动成功
|
# 验证容器是否启动成功
|
||||||
|
|||||||
6
main.py
6
main.py
@@ -36,8 +36,10 @@ async def shutdown_event():
|
|||||||
|
|
||||||
# Database connection parameters
|
# Database connection parameters
|
||||||
DB_CONFIG = {
|
DB_CONFIG = {
|
||||||
"host": os.getenv("DB_HOST", "121.43.104.161"),
|
"host": os.getenv("DB_HOST", "localhost"),
|
||||||
"port": os.getenv("DB_PORT", "6432"),
|
"port": os.getenv("DB_PORT", "5432"),
|
||||||
|
# "host": os.getenv("DB_HOST", "121.43.104.161"),
|
||||||
|
# "port": os.getenv("DB_PORT", "6432"),
|
||||||
"user": os.getenv("DB_USER", "gsdh"),
|
"user": os.getenv("DB_USER", "gsdh"),
|
||||||
"password": os.getenv("DB_PASSWORD", "123gsdh"),
|
"password": os.getenv("DB_PASSWORD", "123gsdh"),
|
||||||
"database": os.getenv("DB_NAME", "gsdh")
|
"database": os.getenv("DB_NAME", "gsdh")
|
||||||
|
|||||||
24
test_db.py
Normal file
24
test_db.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import os
|
||||||
|
import psycopg2
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
# 模拟 main.py 的行为:加载环境变量
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
# 使用代码中的默认配置(模拟服务器环境),但会被 .env 覆盖(模拟本地环境)
|
||||||
|
DB_CONFIG = {
|
||||||
|
"host": os.getenv("DB_HOST", "localhost"),
|
||||||
|
"port": os.getenv("DB_PORT", "5432"),
|
||||||
|
"user": os.getenv("DB_USER", "gsdh"),
|
||||||
|
"password": os.getenv("DB_PASSWORD", "123gsdh"),
|
||||||
|
"database": os.getenv("DB_NAME", "gsdh")
|
||||||
|
}
|
||||||
|
|
||||||
|
print(f"Connecting to: {DB_CONFIG['host']}:{DB_CONFIG['port']}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
conn = psycopg2.connect(**DB_CONFIG)
|
||||||
|
print("Successfully connected to the database!")
|
||||||
|
conn.close()
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Failed to connect: {e}")
|
||||||
Reference in New Issue
Block a user