java11基于ubuntu20.04 础镜像Dockerfile及Makefile

本文介绍了如何使用Dockerfile从Ubuntu 20.04镜像开始,配置Java 11环境,替换apt源,安装必要软件,下载并解压JDK,设置环境变量,并将镜像推送到harbor私有仓库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dockerfile内容:

FROM ubuntu:20.04

ARG DEBIAN_FRONTEND=noninteractive

ENV JAVA_HOME=/opt/jdk-11.0.14\
    CLASSPATH=.:/opt/jdk-11.0.14/lib \
    LANG=zh_CN.UTF-8 \
    LANGUAGE=zh_CN:zh:en_US:en \
    TZ=Asia/Shanghai
ENV PATH=$PATH:/opt/jdk-11.0.14/bin
RUN sed -i "s/archive.ubuntu.com/mirrors.ustc.edu.cn/g" /etc/apt/sources.list && \
    sed -i "s/security.ubuntu.com/mirrors.ustc.edu.cn/g" /etc/apt/sources.list && \
    apt-get update &&  apt-get -y install --no-install-recommends \
    tzdata \
    language-pack-zh-hans \
    wget \
    dumb-init && \
    wget -q http://*****/jdk-11.0.14_linux-x64_bin.tar.gz -P /opt/ && \
    cd /opt/ && tar xf jdk-11.0.14_linux-x64_bin.tar.gz && \
    rm -f jdk-11.0.14_linux-x64_bin.tar.gz && \
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone && \
    echo "en_US.UTF-8 UTF-8" >> /var/lib/locales/supported.d/local && \
    echo "zh_CN.UTF-8 UTF-8" >> /var/lib/locales/supported.d/local && \
    echo "zh_CN.GBK GBK" >> /var/lib/locales/supported.d/local && \
    echo "zh_CN GB2312" >> /var/lib/locales/supported.d/local && \
    locale-gen

ENTRYPOINT  ["dumb-init", "--"]

Makefile内容:

all: build push
build:
		docker build --platform linux/x86_64 --rm -f Dockerfile -t aaa:v1 .
push:
		docker login -u username -p password harbor(私有仓库)地址
		docker push aaa:v1
### 安装和配置YOLOv1进行目标检测 #### 准备工作 为了在Ubuntu 20.04上成功部署YOLOv1,需要先准备好开发环境。考虑到环境配置的复杂度以及一致性维护的需求,推荐使用Docker来构建所需的运行时环境[^1]。 #### Docker镜像准备 创建一个适合YOLOv1的Dockerfile文件,该文件定义了用于安装依赖项并设置YOLOv1所需的一切指令。对于CUDA支持下的深度学习框架来说,NVIDIA提供了官方优化过的基镜像,这可以作为起点: ```dockerfile FROM nvidia/cuda:11.7.0-base-ubuntu20.04 RUN apt-get update && \ apt-get install -y --no-install-recommends \ build-essential \ cmake \ git \ libopencv-dev \ python3-pip \ python3-setuptools \ python3-wheel \ wget && \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY . . RUN pip3 install -r requirements.txt CMD ["bash"] ``` 此段脚本基于带有CUDA 11.7支持的Ubuntu 20.04镜像,并安装了一些必要的软件包,包括OpenCV库及其Python绑定、Git版本控制系统以及其他可能被YOLOv1项目所使用的工具或库。 #### YOLOv1源码获取与编译 通过克隆Darknet仓库获得YOLOv1的具体实现代码。需要注意的是,在执行`make`命令之前应当修改Makefile中的某些选项以适应个人硬件条件(比如是否开启GPU加速等): ```shell git clone https://github.com/pjreddie/darknet.git cd darknet sed -i 's/GPU=0/GPU=1/' Makefile sed -i 's/CUDNN=0/CUDNN=1/' Makefile make ``` 以上命令序列完成了从GitHub拉取darknet项目的操作,并针对具有CUDA和cuDNN支持的情况调整了编译参数,最后调用了GNU make来进行实际编译过程[^2]。 #### 配置PyTorch环境 虽然YOLOv1主要由C语言编写并通过Darknet框架提供接口访问,但在现代应用中往往还需要配合其他机器学习平台一起工作。因此,建立一个兼容性强且功能完备的PyTorch环境是非常有帮助的。可以通过pip工具轻松完成这项任务: ```shell pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 ``` 这条语句指定了额外索引URL指向包含特定于CUDA 11.7版本预编译二进制文件的位置,从而确保能够顺利安装适用于当前系统的PyTorch发行版[^4]。 #### 测试模型性能 一旦所有前期准备工作都已完成,则可以根据需求加载预训练权重并对自定义数据集实施预测分析。通常情况下,只需指定相应的配置文件路径(.cfg),类别名称列表(.names)以及权重文件(.weights): ```python import cv2 as cv from darknet import Darknet, detect_cv2_image model = Darknet('cfg/yolov1.cfg') model.load_weights('yolov1.weights') image = cv.imread('data/dog.jpg') # 替换成自己的图片路径 detections = detect_cv2_image(model, image) for detection in detections: label, confidence, bbox = detection print(f'{label}: {confidence:.2f} at {bbox}') ``` 上述Python片段展示了如何利用已有的YOLOv1模型结构描述文档(cfg)读入网络架构信息;接着借助`.load_weights()`方法导入事先训练好的参数值;最终实现了对输入图像的目标识别流程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值