t
This commit is contained in:
@@ -36,10 +36,10 @@ TAR_FILE="${IMAGE_NAME}-${IMAGE_TAG}.tar" # 压缩包文件名
|
||||
PLATFORM="linux/amd64" # 默认架构
|
||||
ARCH_SUFFIX="" # 架构后缀,用于区分不同架构的tar文件
|
||||
# 默认使用华为云源 (AMD64速度快)
|
||||
BASE_IMAGE="swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.9-slim"
|
||||
if [ "$PLATFORM" = "linux/arm64" ]; then
|
||||
BASE_IMAGE="docker.m.daocloud.io/python:3.9-slim"
|
||||
fi
|
||||
# BASE_IMAGE="swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.9-slim"
|
||||
# if [ "$PLATFORM" = "linux/arm64" ]; then
|
||||
# BASE_IMAGE="docker.m.daocloud.io/python:3.9-slim"
|
||||
# fi
|
||||
# 颜色输出
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
@@ -128,7 +128,7 @@ build_image() {
|
||||
fi
|
||||
|
||||
# 构建镜像并导出为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
|
||||
log_success "Docker 镜像构建完成: ${TAR_FILE}"
|
||||
@@ -192,8 +192,12 @@ deploy_on_server() {
|
||||
|
||||
# 创建并使用.env文件中的变量
|
||||
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 \
|
||||
-e DB_HOST=localhost \
|
||||
-e DB_PORT=5432 \
|
||||
${IMAGE_NAME}:${IMAGE_TAG}
|
||||
|
||||
# 验证容器是否启动成功
|
||||
|
||||
6
main.py
6
main.py
@@ -36,8 +36,10 @@ async def shutdown_event():
|
||||
|
||||
# Database connection parameters
|
||||
DB_CONFIG = {
|
||||
"host": os.getenv("DB_HOST", "121.43.104.161"),
|
||||
"port": os.getenv("DB_PORT", "6432"),
|
||||
"host": os.getenv("DB_HOST", "localhost"),
|
||||
"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"),
|
||||
"password": os.getenv("DB_PASSWORD", "123gsdh"),
|
||||
"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