mirror of
https://github.com/yshtcn/GetIP_Service.git
synced 2026-01-28 09:31:59 +08:00
# 建立版本库
- build docker 20240603-2
This commit is contained in:
19
Dockerfile
Normal file
19
Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# 使用官方的 Python 3.11 镜像作为基础镜像
|
||||||
|
FROM python:3.11-slim
|
||||||
|
|
||||||
|
|
||||||
|
# 设置工作目录
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# 复制当前目录中的内容到工作目录
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
# 安装Flask
|
||||||
|
RUN pip install flask
|
||||||
|
|
||||||
|
# 暴露容器的80端口
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
# 运行Flask应用
|
||||||
|
CMD ["python", "app.py"]
|
||||||
|
|
||||||
14
app.py
Normal file
14
app.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
from flask import Flask, request
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route('/')
|
||||||
|
def get_ip():
|
||||||
|
if request.headers.getlist("X-Forwarded-For"):
|
||||||
|
user_ip = request.headers.getlist("X-Forwarded-For")[0]
|
||||||
|
else:
|
||||||
|
user_ip = request.remote_addr
|
||||||
|
return user_ip
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(host='0.0.0.0', port=80)
|
||||||
74
getip_service_DockerBuilder.ps1
Normal file
74
getip_service_DockerBuilder.ps1
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||||
|
|
||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Թ<EFBFBD><D4B9><EFBFBD>ԱȨ<D4B1><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
|
||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԱȨ<D4B1><C8A8>
|
||||||
|
Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# <20><><EFBFBD>ĵ<EFBFBD><C4B5>ű<EFBFBD><C5B1><EFBFBD>Ŀ¼
|
||||||
|
Set-Location $PSScriptRoot
|
||||||
|
|
||||||
|
Write-Host "<EFBFBD><EFBFBD>ǰĿ¼<EFBFBD>Ѹ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼: $PSScriptRoot"
|
||||||
|
|
||||||
|
# <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD>ں<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
$dateTime = Get-Date -Format "yyyyMMdd"
|
||||||
|
Write-Host "<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: $dateTime"
|
||||||
|
|
||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ȡ<EFBFBD>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һλ
|
||||||
|
$revision = Read-Host -Prompt "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD> ($dateTime,<2C><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>û<EFBFBD>дΣ<D0B4><CEA3><EFBFBD>ֱ<EFBFBD>ӻس<D3BB>"
|
||||||
|
Write-Host "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD>: $revision"
|
||||||
|
|
||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD>汾<EFBFBD><E6B1BE>
|
||||||
|
if ([string]::IsNullOrWhiteSpace($revision)) {
|
||||||
|
$version = "$dateTime"
|
||||||
|
} else {
|
||||||
|
$version = "$dateTime" + "_$revision"
|
||||||
|
}
|
||||||
|
Write-Host "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD>: $version"
|
||||||
|
|
||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾<CFB0>ű<EFBFBD>ǩ<EFBFBD><C7A9> Docker <20><><EFBFBD><EFBFBD>
|
||||||
|
Write-Host "<EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD> Docker <20><><EFBFBD><EFBFBD>..."
|
||||||
|
$tempFileBuild = [System.IO.Path]::GetTempFileName()
|
||||||
|
docker build -t yshtcn/getip_service:$version . 2> $tempFileBuild
|
||||||
|
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
Write-Host "Docker <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>" -ForegroundColor Red
|
||||||
|
Write-Host (Get-Content $tempFileBuild) -ForegroundColor Red
|
||||||
|
Remove-Item $tempFileBuild
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
Write-Host "Docker <20><><EFBFBD><EFBFBD><F1B9B9BD>ɹ<EFBFBD>"
|
||||||
|
Remove-Item $tempFileBuild
|
||||||
|
|
||||||
|
# <20><><EFBFBD>ʹ<EFBFBD><CDB4>а汾<D0B0>ű<EFBFBD>ǩ<EFBFBD><C7A9> Docker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Docker Hub
|
||||||
|
Write-Host "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Docker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Docker Hub..."
|
||||||
|
$tempFilePush = [System.IO.Path]::GetTempFileName()
|
||||||
|
docker push yshtcn/getip_service:$version 2> $tempFilePush
|
||||||
|
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
Write-Host "Docker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>" -ForegroundColor Red
|
||||||
|
Write-Host (Get-Content $tempFilePush) -ForegroundColor Red
|
||||||
|
Remove-Item $tempFilePush
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
Write-Host "Docker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳɹ<CDB3>"
|
||||||
|
Remove-Item $tempFilePush
|
||||||
|
|
||||||
|
# Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'latest' <20><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Write-Host "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'latest' <20><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."
|
||||||
|
$tempFilePushLatest = [System.IO.Path]::GetTempFileName()
|
||||||
|
docker tag yshtcn/getip_service:$version yshtcn/getip_service:latest
|
||||||
|
docker push yshtcn/getip_service:latest 2> $tempFilePushLatest
|
||||||
|
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
Write-Host "Docker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'latest' <20><>ǩʧ<C7A9><CAA7>" -ForegroundColor Red
|
||||||
|
Write-Host (Get-Content $tempFilePushLatest) -ForegroundColor Red
|
||||||
|
Remove-Item $tempFilePushLatest
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
Write-Host "Docker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'latest' <20><>ǩ<EFBFBD>ɹ<EFBFBD>"
|
||||||
|
Remove-Item $tempFilePushLatest
|
||||||
|
|
||||||
|
pause
|
||||||
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
flask
|
||||||
Reference in New Issue
Block a user