利用|利用 Docker 搭建 基于 Ubuntu18.4 的 GoCV 环境
使用说明
# 在桌面创建 gocv_docker 目录
cd ~/Desktop && mkdir gocv_docker && cd ~/Desktop/gocv_docker# 创建 Dockerfile 并将下文 Dockerfile 内容copy
touch Dockerfile# 下载go1.17版本
wget --no-check-certificate "https://go.dev/dl/go1.17.10.linux-amd64.tar.gz"# 构建 image
docker build -t gocv4.5_ubuntu18.4_go1.17_gocv0.30.0 . # 运行container 并映射文件,端口
# 容器开机自动重启 refer: https://www.jianshu.com/p/36f63f57b05d
docker run -d -p 9000-9010:9000-9010 \
-v /Users/flybird1971/docker/gocv:/home/gocv/gocv_work \
--name gocv4.5_ubuntu18.4_go1.17_gocv0.30.0 \
--restart=always \
--privileged=true gocv4.5_ubuntu18.4_go1.17_gocv0.30.0/usr/sbin/init# 进入container
docker exec -it gocv4.5_ubuntu18.4_go1.17_gocv0.30.0/bin/bash
Dockerfile 【利用|利用 Docker 搭建 基于 Ubuntu18.4 的 GoCV 环境】默认创建 gocv 账户运行
# base image
# FROM ubuntu:18.04# mac os m1芯片
# 如果非 m1芯片,可以将 --platform=linux/amd64 移除
# refer: https://surfthedream.com.au/running-matchstick-for-testing-the-graph-on-mac-m1/
FROM --platform=linux/amd64 ubuntu:18.04# description
LABEL maintainer="flybird1971@gmail.com"
LABEL version="1.0"
LABEL description="base ubuntu18.04、golang1.17.10、gocv0.30.0、opencv4.5.5"# 设置国内源(阿里)
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo " " >> /etc/apt/sources.list && \
echo "# 阿里源 " >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list# 更新源
RUN apt-get update -y && apt-get -y upgrade# 安装系统常用工具
RUN apt-get install -y openssl && \
apt-get install -y libssl-dev && \
apt-get -y install make && \
apt-get install -y sudoRUN apt-get install -y wget && \
apt install -y vim && \
apt-get install -y curl && \
apt-get install -y tree && \
apt-get install -y git# 设置 root 密码
RUN echo "root:123456" | chpasswd
# 新增 gocv 用户
RUN useradd --create-home --no-log-init --shell /bin/bash gocv
RUN echo 'gocv:123456' | chpasswd# 创建 gocv 工作目录
RUN mkdir /home/gocv/go && mkdir /home/gocv/gocv_work # 安装 golang
# wget --no-check-certificate "https://go.dev/dl/go1.18.2.linux-amd64.tar.gz"
# wget --no-check-certificate "https://go.dev/dl/go1.17.10.linux-amd64.tar.gz"
COPY go1.17.10.linux-amd64.tar.gz /tmp/
RUN cd /tmp/ && tar -xzf go1.17.10.linux-amd64.tar.gz && \
mv go /usr/local && \
echo "" >> /etc/profile && \
echo "# golang" >> /etc/profile && \
echo "GOROOT=/usr/local/go" >> /etc/profile && \
echo "GOPATH=/home/gocv/go" >> /etc/profile && \
echo "PATH=\$GOPATH/bin:\$GOROOT/bin:\$PATH" >> /etc/profile# 当前导入环境变量
SHELL ["/bin/bash", "-c"]
RUN source /etc/profile
ENV GOROOT=/usr/local/go
ENV GOPATH=/home/gocv/go
ENV PATH=$GOPATH/bin:$GOROOT/bin:$PATH# golang 设置国内代理
RUN go version && go env -w GOPROXY=https://goproxy.cn,direct# 下载 gocv 库
RUN go get -u -d gocv.io/x/gocv@v0.30.0# 安装 OpenCV 4.5.5
WORKDIR $GOPATH/pkg/mod/gocv.io/x/gocv@v0.30.0
RUN make -j4 deps# 配置命令行代理
# 如果下个命令 make -j4 download 无法成功下载,则需要配置代理
# ENV https_proxy=http://192.168.0.105:7890
# ENV http_proxy=http://192.168.0.105:7890
# ENV all_proxy=http://192.168.0.105:7890# 安装 OpenCV 4.5.5
RUN make -j4 download
RUN make -j4 build
RUN make -j4 sudo_install# 测试gocv
RUN go run ./cmd/version/main.go# gopath 权限切换为 gocv 用户
RUN chown -R gocv:root /home/gocv/go# 切换用户
USER gocv
WORKDIR /home/gocv/gocv_work# 创建 自动启动脚本
RUN echo '#!/bin/sh' >> /home/gocv/ini.sh
RUN echo "source /etc/profile && go version" >> /home/gocv/ini.sh
RUN echo "while true;
do echo hello world;
sleep 1;
done" >> /home/gocv/ini.sh
RUN chmod +x /home/gocv/ini.shENTRYPOINT [ "/home/gocv/ini.sh" ]
推荐阅读
- #星光计划2.0#基于3861智能开发套件软件开发环境搭建
- HA-Spark集群环境搭建(Standalone模式)
- HA-Spark集群环境搭建(Yarn模式)
- Spark-Local模式环境搭建
- 注册中心eureka的搭建
- #私藏项目实操分享#分布式技术专题「OSS中间件系列」Minio的Server端服务的架构和实战搭建
- 作业帮上万个 CronJob 和在线业务混部,如何解决弱隔离问题并进一步提升资源利用率()
- 十docker swarm
- 十一docker config和docker secret
- 一k8s基础环境搭建