离线安装harbor容器镜像仓库单机版(harbor-v2.3.5)

news2025/2/27 14:23:51

记录:358

场景:在CentOS 7.9操作系统上,离线部署harbor容器镜像仓库单机版,使用Redis为外部缓存、使用PostgreSQL为外部数据库、使用docker-ce操作容器、使用docker-compose操作harbor容器镜像仓库。

版本:

操作系统:CentOS 7.9

Harbor版本:harbor-v2.3.5

docker-ce版本:docker-ce-19.03.15

docker-compose版本:docker-compose-v2.2.3

Redis版本:redis-6.2.4

PostgreSQL版本:PostgreSQL 13.4

1.主机规划

1.1主机基础配置

主机app166;内存:4GB;硬盘(SCSI):50GB;硬盘2(SCSI):40GB。

1.2主机安装软件规划

主机部署Harbor、docker-ce、docker-compose、Redis、PostgreSQ等软件规划。

1.3主机基础软件

(1)配置对应主机名称、hosts文件。

(2)关闭防火墙、关闭SELinux。

(3)配置离线本地镜像仓库。

(4)安装gcc高版本。

1.4配置br_netfilter

(1)加载内核模块

命令:modprobe br_netfilter

(2)配置参数

修改命令:vi /etc/sysctl.conf

修改内容:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

(3)参数生效

命令:sysctl -p

2.安装redis

2.1主机规划

目标:使用1台主机部署redis。

主机app166;IP:192.168.19.166。

2.2下载安装包

离线安装Redis集群,需要在公网机器下载包并拷贝到内网。

2.2.1下载redis-6.2.4.tar.gz

下载命令:wget  http://download.redis.io/releases/redis-6.2.4.tar.gz

解析:下载完成后,redis-6.2.4.tar.gz包在当前目录。

2.2.2下载gcc依赖包

(1)下载gcc相关的rpm包

下载命令:yum install --downloadonly --downloaddir /home/mirror/gcc-rpm devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils gcc

(2)把下载包拷贝到内网机器制作成本地镜像

2.3安装gcc

(1)安装gcc

安装命令:yum  install -y devtoolset-9-gcc devtoolset-9-gcc-c++  devtoolset-9-binutils gcc

(2)配置gcc

内容:echo 'source /opt/rh/devtoolset-9/enable'>>/etc/profile

生效:source /etc/profile

(3)查看gcc版本

命令:gcc --version

打印信息:gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)

2.4解压redis包到指定目录

命令:tar -xzvf /home/apps/software/redis-6.2.4.tar.gz -C /home/apps/module/

解析:解压后,Redis相关内容在/home/apps/module/redis-6.2.4。

2.5编译redis

操作目录:cd /home/apps/module/redis-6.2.4

编译命令:make -C /home/apps/module/redis-6.2.4

解析:编译redis后,在redis-6.2.4/src目录下生成.o文件和redis-server等文件,生成./deps文件夹。

2.6安装redis

安装redis到指定目录,默认是在/usr/local/。

操作目录:cd /home/apps/module/redis-6.2.4

安装命令:make install PREFIX=/home/apps/module/redis-6.2.4

解析:把redis-6.2.4指定安装在/home/apps/module/redis-6.2.4,会在此目录下生成bin目录。

2.7创建redis节点目录

部署一个单机版redis,端口号为27003。

配置目录:mkdir -p /home/apps/module/redis-single/node-27003/conf

数据目录:mkdir -p /home/apps/module/redis-single/node-27003/data

日志目录:mkdir -p /home/apps/module/redis-single/node-27003/log

运行目录:mkdir -p /home/apps/module/redis-single/node-27003/run

2.8拷贝redis配置到节点目录

从/home/apps/module/redis-6.2.4拷贝redis.conf配置文件到集群配置目录。

节点27003:cp -r /home/apps/module/redis-6.2.4/redis.conf /home/apps/module/redis-single/node-27003/conf/

2.9修改配置文件

在主机161操作。

修改命令:vi /home/apps/module/redis-single/node-27003/conf/redis.conf

修改内容:

port 27003
bind 192.168.19.166
daemonize yes 
pidfile /home/apps/module/redis-single/node-27003/run/redis.pid
logfile "/home/apps/module/redis-single/node-27003/log/stdout.pid"
dir /home/apps/module/redis-single/node-27003/data
appendonly  yes
masterauth  <hang@123456>
requirepass  hang@123456
#bind 127.0.0.1 -::1

2.10启动redis

2.10.1启动指令

操作目录:cd /home/apps/module/redis-6.2.4/bin

启动27003节点:/home/apps/module/redis-6.2.4/bin/redis-server /home/apps/module/redis-single/node-27003/conf/redis.conf

2.10.2查看监听端口

命令:netstat -atulnp | grep redis

3.安装PostgreSQL

3.1主机规划

目标:使用一台主机部署PostgreSQL数据库,为Harbor集群提供共享存储数据库。

主机app166;IP:192.168.19.166。

3.2下载安装包

下载命令:wget https://ftp.postgresql.org/pub/source/v13.4/postgresql-13.4.tar.gz --no-check-certificate

解析:下载完成后,postgresql-13.4.tar.gz包在当前目录;--no-check-certificate,不验证服务端的证书。

3.3安装基础依赖

安装命令:yum install -y readline-devel zlib-devel zlib gcc

解析:安装基础依赖,避免安装PostgreSQL报错。

3.4创建Linux普通用户

(1)创建用户

默认超级用户root不能启动PostgreSQL,创建普通用户postgre。

创建用户命令:useradd postgres

(2)不设置密码使用root用户切换到postgres

登录postgres命令:su postgres

退出postgresml:exit

3.5解压PostgreSQL包

解压命令:tar -xzvf /home/apps/software/postgresql-13.4.tar.gz -C /home/apps/module

解析:把postgresql-13.4.tar.gz解压到指定目录。

3.6规划安装目录

(1)规划安装目录

创建目录:mkdir -p /home/apps/module/postgresql

(2)检查路径

操作目录:cd /home/apps/module/postgresql-13.4

执行命令:./configure  --prefix=/home/apps/module/postgresql

解析:./configure是postgresql自带的脚本。

3.7编译PostgreSQL

操作目录:cd /home/apps/module/postgresql-13.4

编译命令:make -C /home/apps/module/postgresql-13.4

解析:-C,编译指定目录下内容。

3.8安装PostgreSQL

操作目录:cd /home/apps/module/postgresql-13.4

安装目的目录:/home/apps/module/postgresql

安装命令:make install PREFIX=/home/apps/module/postgresql

解析:使用PREFIX,把PostgreSQL安装到指定目录。在指定目录下生成:bin、include、lib、share。

3.9创建PostgreSQL的数据目录

创建命令:mkdir -p /home/data/postgresql/data

解析:data目录存放PostgreSQL的数据。

3.10修改数据目录和安装目录的用户所有权

PostgreSQL安装目录和数据目录,所有权修改为postgres用户。

安装目录赋权:chown -R postgres:postgres /home/apps/module/postgresql/

数据目录赋权:chown -R postgres:postgres /home/data/postgresql/data/

3.11设置PostgreSQL环境变量

(1)切换用户和目录

切换到postgres用户下操作。

切换命令:su postgres

切换到目录:cd /home/postgres

查看用户下配置文件清单:ll -a

(2)修改配置

修改配置:vi .bash_profile

修改内容:

PGHOME=/home/apps/module/postgresql
export PGHOME
PGDATA=/home/data/postgresql/data
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

解析:PGHOME,安装目录;PGDATA,数据目录。

(3)配置生效

配置生效命令:source ./.bash_profile

(4)确认配置生效

查看版本命令:psql -V

打印信息:psql (PostgreSQL) 13.4

查看命令所在目录:which psql

打印信息:/home/apps/module/postgresql/bin/psql

以上,两条命令均可以验证配置已经生效。

(5)设置开机启动配置生效

默认情况下,重启机器后.bash_profile的环境变量会失效,需手动执行source命令刷新配置。需设置为开机启动,自动刷新生效。

修改指令:vi /etc/profile

增加内容:source /home/postgres/.bash_profile

3.12初始化PostgreSQL数据库

初始化命令:initdb

解析:配置了环境变量,initdb命令在postgres用户任意命令可以使用。

打印成功信息:Success. You can now start the database server using:

pg_ctl -D /home/data/postgresql/data -l logfile start

3.13启动PostgreSQL数据库

(1)启动PostgreSQL

启动命令(指定日志目录):pg_ctl -D /home/data/postgresql/data -l /home/data/postgresql/data/postgres.log start

解析:在执行初始化initdb成功后,会提示登录命令,也就是默认启动命令。

(2)查看PostgreSQL监听端口

命令:netstat -atunlp | grep postgres

解析:postgres的默认端口是5432。

3.14登录PostgreSQL数据库和修改密码

(1)登录PostgreSQL

登录命令:psql

解析:默认登录不需要密码。

(2)修改登录密码

修改命令:\password

口令:hang@123456

解析:需输入两次

(3)退出登录

命令:\q

3.15设置远程可登录

(1)修改远程可登录

修改文件:vi /home/data/postgresql/data/postgresql.conf

修改内容:

listen_addresses = '*'

解析:把#listen_addresses = 'localhost',修改为匹配所有IP地址。

(2)修改登录需要密码

修改文件:vi /home/data/postgresql/data/pg_hba.conf

修改内容:

local   all             all                                     password
host    all             all             127.0.0.1/32            password
host    all             all             192.168.19.1/32         password
host    all             all             ::1/128                 password

解析:192.168.19.1/32,部署PostgreSQL主机是192.168.19.166。

3.16重启PostgreSQL数据库

(1)重启数据库

重启动命令:pg_ctl -D /home/data/postgresql/data -l /home/data/postgresql/data/postgres.log restart

(2)登录数据库

命令:psql

解析:提示Password for user postgres:,需要输入登录密码。

3.17创建数据库

(1)创建3个数据库

命令:create database  registry;

命令:create database notary_signer;

命令:create database notary_server;

解析:registry、notary_signer、notary_server是harbor需求的3个数据库。

4.安装docker

4.1主机规划

目标:使用1台主机部署docker。

主机app164;IP:192.168.19.166。

4.2下载docker-ce

(1)下载docker-ce

下载:docker-ce-19.03.15和docker-ce-cli-19.03.15

4.3安装docker-ce

(1)安装docker-ce

命令:yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15

(2)查看docker版本

查看版本:docker --version

4.4启动docker-ce

(1)启动docker-ce

命令:systemctl start docker

(2)关闭docker-ce

命令:systemctl stop docker

(3)查看docker-ce状态

命令:systemctl status docker

5.安装docker-compose

5.1下载docker-compose

(1)下载docker-compose

下载命令:wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64

5.2安装docker-compose

docker-compose-linux-x86_64是可执行包,直接使用。

(1)把包移到bin目录

命令:cp /home/apps/software/docker-compose-linux-x86_64 /usr/local/bin/docker-compose

(2)把docker-compose添加为可执行

命令:chmod +x /usr/local/bin/docker-compose

(3)查看docker-compose版本

命令:docker-compose --version

6.安装harbor

6.1主机规划

目标:使用1台主机部署harbor。

主机app166;IP:192.168.19.166。

6.2下载安装包

(1)下载

命令:wget https://github.com/goharbor/harbor/releases/download/v2.3.5/harbor-offline-installer-v2.3.5.tgz

6.3解压安装包

(1)解压到指定目录

命令:tar -xzvf /home/apps/software/harbor-offline-installer-v2.3.5.tgz -C /home/apps/module/

解析:离线安装包,直接解压到指定目录就行。-C,就是指定目录。

6.4修改配置

操作目录:/home/apps/module/harbor

(1)把harbor.yml.tmpl复制一份为harbor.yml

命令:cp harbor.yml.tmpl harbor.yml

(2)修改配置

修改命令:vi /home/apps/module/harbor/harbor.yml

修改内容(本例配置文件内容):

hostname: app166
http:
  port: 18021
#external_url: http://192.168.19.58:18121
harbor_admin_password: Harbor12345
data_volume: /harbor_data
trivy:
  ignore_unfixed: false
  skip_update: false
  insecure: false

jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 2.3.0
external_database:
  harbor:
    host: 192.168.19.166
    port: 5432
    db_name: registry
    username: postgres
    password: hang@123456
    ssl_mode: disable
    max_idle_conns: 100
    max_open_conns: 900
  notary_signer:
    host: 192.168.19.166
    port: 5432
    db_name: notary_signer
    username: postgres
    password: hang@123456
    ssl_mode: disable
    max_idle_conns: 100
    max_open_conns: 900
  notary_server:
    host: 192.168.19.166
    port: 5432
    db_name: notary_server
    username: postgres
    password: hang@123456
    ssl_mode: disable
    max_idle_conns: 100
    max_open_conns: 900    
external_redis:
  host: 192.168.19.166:27003
  password: hang@123456
  registry_db_index: 1
  jobservice_db_index: 2
  chartmuseum_db_index: 3
  trivy_db_index: 5
  idle_timeout_seconds: 30
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy
metric:
  enabled: false
  port: 9090
  path: /metrics

6.5加载harbor所需的镜像

操作目录:cd /home/apps/module/harbor

命令:docker load -i harbor.v2.3.5.tar.gz

解析:harbor.v2.3.5.tar.gz这个压缩包里包含harbor所需的组件镜像。docker需启动。

6.6把配置文件注入到harbor

操作目录:cd /home/apps/module/harbor

命令:./prepare

解析:harbor.yml是harbor自带脚本,功能就是把配置文件的内容注入到各组件中。

6.7安装harbor

操作目录:cd /home/apps/module/harbor

命令:./install.sh --with-trivy --with-chartmuseum

解析:./install.sh是harbor自带脚本,功能就是安装harbor的各个组件,安装完成后,默认启动各组件。

6.8查看harbor服务状态

(1)查看服务状态

命令:docker-compose ps

全路径:docker-compose -f /home/apps/module/harbor/docker-compose.yml ps

7.操作harbor

在安装完成后,以后使用harbor的,每个组件启动。

7.1启动redis

操作主机:app166

启动命令:

/home/apps/module/redis-6.2.4/bin/redis-server /home/apps/module/redis-single/node-27003/conf/redis.conf 

7.2启动PostgreSQL

操作主机:app166

操作用户:su postgres

启动命令:pg_ctl -D /home/data/postgresql/data -l /home/data/postgresql/data/postgres.log start

重启命令:pg_ctl -D /home/data/postgresql/data -l /home/data/postgresql/data/postgres.log restart

7.3启动docker

(1)启动docker-ce

命令:systemctl start docker

(2)关闭docker-ce

命令:systemctl stop docker

(3)查看docker-ce状态

命令:systemctl status docker

7.4确认docker-compose

可执行文件目录:ll /usr/local/bin/docker-compose

7.5启动harbor

(1)在配置文件目录操作

操作目录:cd /home/apps/module/harbor/

启动命令:docker-compose up

后台启动:docker-compose up -d

停止命令:docker-compose down

解析:在此目录下存放docker-compose的必须配置:docker-compose.yml。

(2)任意目录指定配置文件

命令:docker-compose -f /home/apps/module/harbor/docker-compose.yml up -d

解析:-f /home/apps/module/harbor/docker-compose.yml,指定配置文件;-d,后台进程。

7.6登录harbor

(1)登录信息

地址:http://192.168.19.166:18021

用户名/口令(默认):admin/Harbor12345

(2)harbor首页信息

harbor首页信息。

7.7登录harbor(命令行)

(1)添加私有仓库地址到docker配置

修改命令:vi /etc/docker/daemon.json

修改内容:

{
 "insecure-registries":["192.168.19.166:18021"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

(2)重新加载docker配置

重新加载配置:systemctl daemon-reload

重启docker:systemctl restart docker

(3)登录

命令:docker login http://192.168.19.166:18021 -u admin -p Harbor12345

解析:打印日志Login Succeeded,就表示已经登录成功。

7.8推送一个容器镜像到Harbor镜像仓库

(1)查看本地镜像

查看:docker images

查看(指定容器):docker images goharbor/redis-photon

解析:在离线安装harbor时,本地就有harbor的相关镜像,就推送nginx-photon镜像到harbor镜像仓库。

(2)推送到镜像仓库

镜像打标签命令:docker tag goharbor/redis-photon:v2.3.5 192.168.19.166:18021/library/redis-photon:v2.3.5

镜像推送命令:docker push 192.168.19.166:18021/library/redis-photon:v2.3.5

(3)推送到镜像仓库

在harbor UI界面查看。

以上,感谢。

2022年12月9日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenAI chatGPT火爆出圈,世界悄悄发生着变化

OpenAI chatGPT火爆出圈&#xff0c;世界悄悄发生着变化一、为什么突然火起来了&#xff1f;二、ChatGPT功能实例2.1 [AI聊天](https://chat.openai.com/chat)2.2 [AI写新闻稿](https://chat.openai.com/chat)2.3 [AI写代码](https://chat.openai.com/chat)2.4 [AI写论文](http…

Kubernetes二进制单节点集群部署

Kubernetes二进制单节点集群部署 常见的K8S按照部署方式 ●Mini kube Minikube是一个工具&#xff0c;可以在本地快速运行一个单节点微型K8S&#xff0c;仅用于学习、预览K8S的一些特性使用部署地址&#xff1a; https://kubernetes.io/docs/setup/minikube ●Kubeadmin Kubea…

浅谈Kernel32.dll(Windows平台下必有的动态库文件)

今天听了前辈的黑客攻击的知识分享&#xff0c;里面比较基础的元素就是Kernel32.dll&#xff0c;我对它感兴趣好久了&#xff0c;今天搜集一些资料&#xff0c;有关Kernel32的。 目录 ​编辑 一、Kernel32介绍 二、Kernel32内存管理 三、引起Kernel32出错的主要元凶 四、解…

【求助帖】从技术转为项目经理后,如何快速进入角色?

近日&#xff0c;看到了一个求助贴&#xff0c;小李今年26岁&#xff0c;干了两年技术后&#xff0c;现在转行到项目经理的岗位。每天东奔西跑、天天加班还是感觉很吃力、工作也没有成效&#xff0c;想问下如何能快速进入角色&#xff1f; 那么小李的一天具体是怎么样的呢&…

追格小程序重磅升级 新亮点来袭!

追格小程序是一个积木式小程序搭建框架&#xff0c;基于UniappWordPress开发&#xff0c;代码免费开源不加密且支持二开&#xff0c;安装追格相应扩展模块&#xff0c;简单配置即可快速搭建不限于圈子社区、知识付费、活动报名、资讯等类型小程序。 新的亮点是什么 追格小程序…

以太网 VLAN(VLAN数据帧格式、交换机接口类型)

2.8.2 以太网 VLAN&#xff08;VLAN数据帧格式、交换机接口类型&#xff09; 原始的以太网数据帧没有802.1QTag字段&#xff0c;在网络中进行转发的时候能够被主机接收、解封查看。 而一但有了802.1Q Tag字段的以太网数据帧&#xff0c;主机即使能接收数据帧&#xff0c;也无法…

233的字符串

//在群里看到了老师发布的下面这条消息&#xff0c;许久没打代码&#xff0c;打算找找感觉&#xff0c;第一道就拿捏我了&#xff0c;题目不是很难&#xff0c;但是高数据范围的超时问题一直是我未找到解决办法的一个问题&#xff0c;虽然现在比赛未结束&#xff0c;不过我的错…

人脑如果是台计算机,那么电从哪里来?

1.人脑是一台量子计算机 2022年10月7日&#xff0c;爱尔兰都柏林三一学院的实验团队在《物理学通讯》杂志上发表了一篇名为《非经典脑功能的实验指标》的论文。研究人员在论文中写道&#xff1a;“我们的研究结果表明&#xff0c;我们可能已经目睹了由意识相关的大脑功能介导的…

我写这10+个JavaScript单行代码,被组长夸代码写得优雅

JavaScript 非常大的特点容易上手且非常灵活&#xff0c;代码实现方式五花八门&#xff1b;有时候能一行代码解决&#xff0c;就尽量不用两行。 本文整理了非常有用的单行代码&#xff0c;这些需求都是在开发中非常常见的&#xff0c;用单行代码可以帮助你提高工作效率。 数组…

问卷开头语怎么写?

问卷的开头语是一份问卷的开场&#xff0c;开场好不好关系到整个问卷过程能够顺利进行。所以&#xff0c;在关注问卷的标题、题目、设计以外&#xff0c;我们也要重视起问卷的开头语。通俗易懂的内容更易进行传播&#xff0c;这一点也可以运用到问卷中&#xff0c;表达清晰、完…

低代码平台数据表格组件的设计实践

在做低代码产品的过程中&#xff0c;产品经理可能会遇到各种各样的问题&#xff0c;比如部分产品经理可能会因为对数据模型的不熟悉&#xff0c;而在实际对接中产生一定障碍。所以产品经理要如何在低代码工作中铲除障碍、并进行决策&#xff1f;本篇文章里&#xff0c;作者结合…

⚡热点管理模块⚡

热点管理模块概念 如果一个文件在连续一段时间内没有访问到&#xff0c;则该文件是一个非热点文件&#xff0c;否则位热点文件。在服务上上有两个目录&#xff0c;一个目录是backdir存储的是热点文件&#xff0c;一个目录是packdir存储的是非热点文件热点管理模块每隔一段时间…

ROHM | 开发出隔离型DC-DC转换器“BD7Fx05EFJ-C”

全球知名半导体制造商ROHM&#xff08;总部位于日本京都市&#xff09;开发出两款隔离型反激式*1DC-DC转换器“BD7F105EFJ-C”和“BD7F205EFJ-C”&#xff0c;新产品非常适用于xEV&#xff08;电动汽车&#xff09;的主驱逆变器、车载充电器&#xff08;以下简称“OBC”&#x…

Unity Addressables资源管理 设置远程加载资源

1.添加Group 点击 PackedAssets 可添加默认设置的组 Blank 则是无设置的 修改名字并添加了一张图片 图片挂在WindowImage预制体上 2.设置模式 Group可选择打包模式&#xff1a; 本地&#xff0c;远程&#xff0c;自定义 设置了后这个包会打到不同的路径&#xff0c;加载也只…

环形石子合并(区间DP)

将 n 堆石子绕圆形操场排放&#xff0c;现要将石子有序地合并成一堆。 规定每次只能选相邻的两堆合并成新的一堆&#xff0c;并将新的一堆的石子数记做该次合并的得分。 请编写一个程序&#xff0c;读入堆数 nn 及每堆的石子数&#xff0c;并进行如下计算&#xff1a; 选择一…

代码随想录刷题记录day39 完全背包+零钱兑换 II+组合总和 Ⅳ

代码随想录刷题记录day39 完全背包零钱兑换 II组合总和 Ⅳ 参考&#xff1a;代码随想录 完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09…

《自己动手写CPU》学习记录(6)——第5章/Part 2

目录 引言 致谢 指令说明 逻辑指令 and、or、xor、nor andi、xori lui 移位指令 sll、sllv、sra、srav、srl、srlv 空指令 nop、ssnop、sync、pref 指令实现 宏定义添加 指令译码模块修改 指令执行模块修改 功能验证 逻辑运算 验证代码 仿真波形 移位运算…

CMake中aux_source_directory的使用

CMake中的aux_source_directory命令用于查找目录中的所有源文件&#xff0c;其格式如下&#xff1a; aux_source_directory(<dir> <variable>) 收集指定目录中所有源文件的名称&#xff0c;并将列表(list)存储在提供的<variable>中。该命令旨在由使用显式模…

b2b2c 电子商务平台涉及的技术、运营方案

一个好的SpringCloudSpringBoot b2b2c 电子商务平台涉及哪些技术、运营方案&#xff1f;以下是我结合公司的产品做的总结&#xff0c;希望可以帮助到大家&#xff01; 搜索体验小程序&#xff1a;海哇 1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买…

javaee之黑马旅游网3

下面来说一个问题&#xff0c;就是对于一张表的操作&#xff0c;涉及到了很多的servlet页面 比如对于一个user表&#xff0c;里面有很多的相关的servlet页面 如果是这样一种情况&#xff0c;那么user表涉及到七八个页面&#xff0c;category表又涉及到七八个页面&#xff0c;那…