27 lines
1.0 KiB
Docker
27 lines
1.0 KiB
Docker
# 基础镜像:轻量Alpine,适配Go二进制运行
|
||
FROM alpine:latest
|
||
|
||
# 定义环境变量(默认值:ENV=local,port=8100,容器启动可覆盖)
|
||
ENV APP_ENV=local \
|
||
APP_PORT=8100
|
||
|
||
# 安装必要依赖(若Go二进制依赖系统C库,无依赖可删除此步)
|
||
RUN apk add --no-cache libc6-compat
|
||
|
||
# 创建工作目录(统一存放二进制和配置文件)
|
||
WORKDIR /app
|
||
|
||
# 1. 复制配置文件到 /app 目录(与二进制文件同目录)
|
||
# 本地 configs/ 目录下的所有文件,会直接复制到容器 /app/ 下
|
||
COPY configs/* /app/
|
||
|
||
# 2. 复制Go二进制文件到 /app 目录
|
||
# 本地二进制文件路径替换为实际路径(如 ./s3-lessie-sourcing-api)
|
||
COPY build/lessie-sourcing-api /app/
|
||
|
||
# 暴露默认端口(与APP_PORT默认值一致,仅声明作用)
|
||
EXPOSE 8100
|
||
|
||
# 启动命令:通过环境变量动态注入ENV和port
|
||
# 逻辑:用APP_ENV设置启动ENV,APP_PORT设置--port参数(默认8100)
|
||
CMD ["sh", "-c", "env ENV=$APP_ENV /app/lessie-sourcing-api --port ${APP_PORT}"] |