自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(0)
  • 资源 (3)
  • 收藏
  • 关注

空空如也

docker搭建lnmp环境

# docker搭建lnmp环境 <!-- TOC --> - [docker搭建lnmp环境](#docker搭建lnmp环境) - [一、Dockerfile定制镜像](#一dockerfile定制镜像) - [二、docker-compose](#二docker-compose) - [三、docker-compose编排lnmp环境](#三docker-compose编排lnmp环境) - [1、mysql](#1mysql) - [2、redis](#2redis) - [3、mongo](#3mongo) - [4、nginx](#4nginx) - [5、php](#5php) - [6、完整版](#6完整版) - [四、参考](#四参考) <!-- /TOC --> 有收获的话请**加颗小星星**,没有收获的话可以 **反对** **没有帮助** **举报**三连 ## 一、Dockerfile定制镜像 ```bash # FROM 指定基础镜像 FROM 镜像 FROM php:7.2-fpm # RUN 执行 RUN or RUN ["可执行文件", "参数1", "参数2"] RUN echo 'Hello, Docker!' > /usr/share/nginx/html/index.html RUN ["php", "-S", "0.0.0.0:8080"] # COPY 复制文件 COPY ... COPY swoole-4.2.10.tgz /home COPY nginx.conf /etc/nginx/nginx.conf # ADD 复制文件或目录,如果是.tgz,会被解压缩 ADD ... ADD nginx.conf /etc/nginx/nginx.conf # CMD 容器启动 CMD echo $HOME => CMD [ "/bin/sh", "-c", "echo $HOME" ] CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] # ENTRYPOINT 入口点 ENTRYPOINT ["docker-entrypoint.sh"] 存在 ENTRYPOINT 后,CMD 的内容将会作为参数传给 ENTRYPOINT # ENV 环境变量 ENV ENV MYSQL_ROOT_PASSWORD root # ARG与ENV差不多 ARG 所设置的构建环境的环境变量,在将来容器运行时是不会存在这些环境变量的 ENV MYSQL_ROOT_PASSWORD root # VOLUME 匿名卷 VOLUME ["", ""...] VOLUME ["/data"] # EXPOSE 暴露端口 EXPOSE [...] EXPOSE 80 443 # WOEKDIR 指定工作目录,进入容器后的落地目录 WORKDIR WORKDIR /var/www # USER 指定当前用户 USER USER root ``` ## 二、docker-compose - 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。 ## 三、docker-compose编排lnmp环境 ### 1、mysql 这里我们使用了mysql5.5版本,没其它用意,相比5.7以上版本,占内存和硬盘最小的一个版本 我们准备了一个`my.cnf`作为额外配置,这里我修改了数据库的时区 ```cnf [mysqld] default-time-zone = '+8:00' ``` ```Dockerfile FROM mysql:5.5 COPY my.cnf /etc/mysql/conf.d EXPOSE 3306 ``` ### 2、redis 我们使用准备的配置文件`redis.conf`覆盖容器默认启动的配置文件,修改了`ip绑定`和`密码` ```conf bind 0.0.0.0 requirepass root ``` ```Dockerfile FROM redis:latest COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ] EXPOSE 6379 ``` ### 3、mongo mongodb我们没有特殊处理 ```Dockerfile FROM mongo:latest EXPOSE 27017 ``` ### 4、nginx 我们准备了一份`nginx.conf`和虚拟目录`conf.d`,为了以后可以动态的配置网站的代理和负载均衡 还有一个日志目录,放在外层`logs`目录里面,记录nginx的访问日志 特别注意的是`fastcgi_pass php:9000;`而不是`fastcgi_pass 127.0.0.1:9000;`,目前自己也没明白 ```Dockerfile FROM nginx:alpine COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80 ``` ### 5、php php算是这里面最难搞定的,因为我们需要额外的添加php扩展,虽然php的docker官方提供了`docker-php-ext-configure`, `docker-php-ext-install`, `docker-php-ext-enable`,还是有些扩展需要通过`手动编译`或者`pecl`安装 由于pecl官网下载慢,我们事先下载好了几个需要的扩展 php-fpm用的是debian的linux系统,下载也很慢,我们备用了阿里云的镜像`sources.list` 我们还准备了php的默认配置`php.ini`和`opcache.ini` 比如swoole扩展安装,记得安装包用完后清理,还有得用`COPY`命令,`ADD`会解压缩 ```Dockerfile # swoole COPY swoole-4.2.10.tgz /home RUN pecl install /home/swoole-4.2.10.tgz && \ docker-php-ext-enable swoole && \ rm /home/swoole-4.2.10.tgz ``` ### 6、完整版 ```yml version: '3' networks: frontend: driver: bridge backend: driver: bridge volumes: mysql: driver: local mongo: driver: local redis: driver: local services: php: build: ./php volumes: - ${WORKER_DIR}:/var/www ports: - 9100:9000 depends_on: - mysql - redis - mongo networks: - backend nginx: build: ./nginx volumes: - ${WORKER_DIR}:/var/www - ./logs/nginx:/var/log/nginx - ./nginx/conf.d:/etc/nginx/conf.d ports: - 8000:80 depends_on: - php networks: - frontend - backend mysql: build: ./mysql environment: - MYSQL_ROOT_PASSWORD=root volumes: - ${DATA_PATH}/mysql:/var/lib/mysql ports: - 3310:3306 networks: - backend mongo: build: ./mongo environment: - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=root ports: - 27010:27017 volumes: - ${DATA_PATH}/mongo:/data/db networks: - backend redis: build: ./redis volumes: - ${DATA_PATH}/redis:/data ports: - 6310:6379 networks: - backend ```

2019-04-28

weshop-微信小程序应用商城

WESHOP | 基于微服务的小程序商城系统 --- Weshop是基于Spring Cloud(Greenwich)开发的小程序商城系统,提供整套公共微服务服务模块,包含用户中心、商品中心、订单中心、营销中心四大基础服务模块,微信端、管理平台两大聚合服务模块,支持服务治理、监控和追踪等功能。 ## 组织结构 ``` weshop ├── weshop-framework -- 框架公共模块 ├── weshop-eureka-server -- eureka注册中心[端口:8761] ├── weshop-config-server -- 配置中心[端口:7001] ├── weshop-api-gateway -- api网关[端口:8020] ├── weshop-hystrix-dashboard -- 断路器监控面板[端口:1301] ├── weshop-example -- 项目示例工程 | ├── weshop-example-api -- 远程服务api接口 | ├── weshop-example-provider -- 服务提供方[端口:9998] | ├── weshop-example-consumer -- 服务消费方[端口:9999] ├── weshop-user-api -- 用户中心api ├── weshop-user -- 用户中心基础服务[端口:8021] ├── weshop-goods-api -- 商品中心api ├── weshop-goods -- 商品中心基础服务[端口:8022] ├── weshop-marketing-api -- 营销中心api ├── weshop-marketing -- 营销中心基础服务[端口:8023] ├── weshop-order-api -- 订单中心api ├── weshop-order -- 订单中心基础服务[端口:8024] ├── weshop-storage-api -- 对象存储服务api ├── weshop-storage -- 对象存储服务[端口:8026] ├── weshop-wechat -- 微信端聚合服务[端口:8025] ├── weshop-wechat-ui -- 微信小程序页面 ├── weshop-admin -- 管理平台聚合服务[端口:8027] ├── weshop-admin-ui -- 管理平台页面 ``` ### 后端技术 技术 | 名称 | 版本 | 官网 ----|------|----|---- Spring Boot | 应用框架 | 2.1.2.RELEASE | [https://projects.spring.io/spring-boot/](https://projects.spring.io/spring-boot/) spring-cloud-netflix | 微服务框架 | Greenwich.RELEASE | [https://projects.spring.io/spring-cloud/](https://projects.spring.io/spring-boot/) spring-cloud-config | 分布式配置中心 | 2.1.2.RELEASE | [https://projects.spring.io/spring-cloud/](https://projects.spring.io/spring-boot/) spring-cloud-sleuth | 分布式服务跟踪 | 2.1.2.RELEASE | [https://projects.spring.io/spring-cloud/](https://projects.spring.io/spring-boot/) spring-cloud-stream | 分布式消息总线 | 2.1.2.RELEASE | [https://projects.spring.io/spring-cloud/](https://projects.spring.io/spring-boot/) MyBatis | ORM框架 | 3.2.1 | [http://www.mybatis.org/mybatis-3/zh/index.html](http://www.mybatis.org/mybatis-3/zh/index.html) Mapper | MyBatis 通用 Mapper4 | 4.0.0 | [https://gitee.com/free/Mapper](https://gitee.com/free/Mapper) PageHelper | MyBatis 分页插件 | 5.1.2 | [https://gitee.com/free/Mybatis_PageHelper](https://gitee.com/free/Mybatis_PageHelper) MyBatis Generator | 代码生成 | 1.3.5 | [http://www.mybatis.org/generator/index.html](http://www.mybatis.org/generator/index.html) Swagger2 | 在线Api文档 | 2.9.2 | [https://swagger.io/](https://swagger.io/) Thymeleaf | 模板引擎 | 3.0.9.RELEASE | [https://www.thymeleaf.org/](https://www.thymeleaf.org/) Logback | 日志组件 | 1.1.3 | [https://logback.qos.ch](https://logback.qos.ch/) Druid | 数据库连接池 | 0.2.23 | [https://github.com/alibaba/druid](https://github.com/alibaba/druid) Hibernate Validator | 后端校验框架 | 5.4.2.Final | [http://hibernate.org/validator/](http://hibernate.org/validator/) RabbitMQ | 消息中间件 | 5.4.3 | [http://www.rabbitmq.com/](http://www.rabbitmq.com/) ### 前端技术 技术 | 名称 | 版本 | 官网 ----|------|----|---- React | 前端MVC框架 | 16.5.1 | [https://reactjs.org/](https://reactjs.org/) Ant Design Pro | 开箱即用的中台前端/设计解决方案 | 2.1.0 | [https://pro.ant.design/index-cn](https://pro.ant.design/index-cn) ### 软件需求 - JDK1.8+ - MySQL5.6+ - RabbitMQ 3.6.x+ - Maven3.0+ - ZipKinServer 3.7.0+ ## 功能 ### 商城功能 - 首页 - 专题列表、专题详情 - 分类列表、分类详情 - 品牌列表、品牌详情 - 新品首发、人气推荐 - 团购 - 搜索 - 商品详情、商品评价、商品分享 - 购物车 - 下单 - 订单列表、订单详情 - 地址、收藏、足迹、意见反馈 - 客服 ### 管理平台功能 - 会员管理 - 商城管理 - 商品管理 - 推广管理 - 系统管理 ### 在线演示 。。。 ### 预览图 > 服务注册页面 ![](docs/preview/eureka.JPG) > swagger ![](docs/preview/swagger.gif) > 首页 ![](docs/preview/index.gif) > 商品页 ![](docs/preview/detail.gif) > 购物车页 ![](docs/preview/orderlist.JPG) ## 安装教程 ### 本地部署 1. 通过git下载源码 2. 创建数据库weshop,数据库编码为UTF-8 3. 执行docs/sql/data.sql文件,初始化数据 4. 修改配置中心(weshop-config-server)的database.properties和common.properties文件,更新MySQL账号和密码,更新RabbitMQ配置,更新zipkinServer配置 5. 运行Maven命令mvn install(注意:安装weshop-admin模块因为会运行npm install和npm build命令时间会比较长,当然也可以手动在weshop-admin模块执行npm命令) 6. 安装weshop-admin-ui模块,运行mvn install和mvn build命令,运行命令前需要安装nodeJs 7. 运行weshop-eureka-server、weshop-config-server、weshop-api-gateway这几个基础服务 8. 运行weshop-user、weshop-goods、weshop-order、weshop-marketing这几个api服务 9. 运行weshop-wechat、wechat-admin这几个endpoint 10. http://localhost:8027/index.html访问后台管理,http://localhost:8020/weshop/swagger-ui.html访问Swagger页面 11. 打开微信开发者工具,导入weshop-wechat-ui模块,点击编译即可,此时可以预览商城效果 ### 生产部署 最低部署要求 1C2G x3

2019-04-28

域天YT88加密狗外壳加密工具

用于直接对EXE或DLL等文件进行加密 。 1、可以壳上加壳,使用虚拟机技术,强度高。 2、兼容性强,可加密VC,VB,C#,DELPHI,PB,VFP,易语言,NET等程序,支持OCX,dll及ARX的加密,支持视频等文件加密。 3、防模拟及反仿真技术。 4、支持64位程序的加壳。 5、不误报。

2018-10-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除