各语言构建镜像的dockerfile
Python
FROM python:3.6.8
USER root
ENV PROJECT_NAME=clothing_rechecking
ENV PROJECT_DIR=/usr/local/ai_projects/$PROJECT_NAME
ENV PROJECT_LOG_PATH=/var/log/$PROJECT_NAME.log
RUN touch /var/log/clothing_rechecking.log
RUN mkdir -p /nfs/share/ai_projects/tmp/clothing_rechecking/download/
ADD . $PROJECT_DIR
WORKDIR $PROJECT_DIR
RUN pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple
RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
RUN pip install numpy==1.16.4 -i https://mirrors.aliyun.com/pypi/simple
EXPOSE 10008
CMD ["/bin/bash", "-c", "gunicorn -w 2 --threads 4 -b 0.0.0.0:10008 clothing_rechecking_enter:app --timeout 600 >> /var/log/clothing_rechecking.log 2>&1"]
#爬虫项目
# 使用Python 3.11作为基础镜像
FROM uhub.service.ucloud.cn/jackhe/python:3.11.9-slim
# 设置环境变量,避免Python生成.pyc文件
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# 安装FFmpeg
RUN apt-get update && \
apt-get install -y ffmpeg && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 创建并设置工作目录
WORKDIR /app
# 将requirements.txt文件复制到容器中
COPY requirements.txt /app/
# 安装Python依赖包
RUN pip install --no-cache-dir -r requirements.txt
# 将项目的源代码复制到容器中
COPY . /app/
# 指定默认命令来运行Python程序
CMD ["python", "/app/crawler_youtube_downloader/ytb_download_pipeline.py"]
Java
FROM harbor.banggood.cn/architecture/java:8-tool
MAINTAINER costomer-server guokunpeng <guokunpeng@banggood.com>
ENV LOG_LEVEL INFO
RUN /bin/cp /usr/share/zoneinfo/UTC /etc/localtime && echo 'UTC' >/etc/timezone
ADD target/scb-crm-customer-1.0-SNAPSHOT.jar /usr/local/customer/data/
ADD templates /usr/local/customer/data/templates
CMD ["java", "-Xms4096m", "-Xmx4096m", "-Xmn3000m", "-Xss256k", "-XX:MetaspaceSize=512M", "-XX:MaxMetaspaceSize=512M", "-XX:-UseAdaptiveSizePolicy", "-XX:+UseParNewGC", "-XX:+UseConcMarkSweepGC", "-XX:CMSInitiatingOccupancyFraction=92", "-XX:+UseCMSInitiatingOccupancyOnly", "-XX:+UseCMSCompactAtFullCollection", "-XX:CMSFullGCsBeforeCompaction=0", "-XX:+CMSParallelInitialMarkEnabled", "-XX:+CMSScavengeBeforeRemark", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/logs", "-XX:+PrintGCDetails", "-XX:+PrintGCDateStamps", "-Xloggc:/logs/gc.log", "-jar", "/usr/local/customer/data/scb-crm-customer-1.0-SNAPSHOT.jar"]
EXPOSE 8091
EXPOSE 8199
EXPOSE 9998
Nginx
FROM nginx
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN rm -f /etc/nginx/nginx.conf
ADD nginx.conf /etc/nginx/nginx.conf
COPY ./dist/ /usr/share/nginx/html/
Go
# 使用Go 1.23.1的官方镜像作为构建环境
FROM golang:1.23.2-alpine as builder
# 设置工作目录
WORKDIR /build
# 复制项目所有内容到构建镜像
COPY . .
# 下载依赖项
RUN go env -w GOPROXY=http://yw-nexus.com:8081/repository/group-go,direct &&\
go env -w GO111MODULE=on &&\
go mod tidy
# 构建可执行文件
RUN CGO_ENABLED=0 go build -o /build/openapi main.go
RUN chmod +x /build/omni-openapi
#FROM cr.com/x-project/ubuntu:22-ffmpeg6
FROM cr.com/x-project/ubuntu:22-ffmpeg6.1
# 创建应用和配置文件的目录结构
RUN mkdir -p /app/bin && \
mkdir -p /app/configs
# 设置时区
ENV TZ=Asia/Shanghai
# 从构建阶段复制可执行文件到运行环境
COPY --from=builder /build/openapi /app/bin/openapi
# 复制配置文件到容器
COPY configs/config.local.yaml /app/configs/config.local.yaml
COPY configs/config.test.yaml /app/configs/config.test.yaml
COPY configs/config.prod.yaml /app/configs/config.prod.yaml
# 设置构建时的环境变量
ARG CONFIG_ENV=prod
# 运行时的环境变量
ENV CONFIG_ENV=$CONFIG_ENV
# 启动服务的命令,配置文件在环境变量中指定
CMD ["/bin/sh", "-c", "env; /app/bin/openapi --config=/app/configs/config.${CONFIG_ENV}.yaml"]
如对您有帮助,支持下呗!
微信

支付宝
