美文网首页
docker进行前端应用部署

docker进行前端应用部署

作者: halapro_liu | 来源:发表于2019-12-23 12:46 被阅读0次

    前言

    依赖环境为centos7

    一、 安装与配置

    安装依赖包

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    

    配置镜像

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    或配置阿里云镜像

    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    查看所有docker版本

    yum list docker-ce --showduplicates | sort -r
    

    安装docker-ce

    sudo yum install docker-ce
    

    启动docker-ce

    sudo systemctl start docker # 启动docker
    sudo systemctl enable docker # 允许自动启动docker服务
    

    部署Vue前端页面

    此配置的项目目录结构如下

    .
    ├── Dockerfile
    ├── Dockerfile.node
    ├── README.md
    ├── build
    │   ├── build.js
    │   ├── check-versions.js
    │   ├── logo.png
    │   ├── utils.js
    │   ├── vue-loader.conf.js
    │   ├── webpack.base.conf.js
    │   ├── webpack.dev.conf.js
    │   ├── webpack.prod.conf.js
    │   └── webpack.test.conf.js
    ├── cert
    │   ├── symantec.key
    │   └── symantec.pem
    ├── config
    │   ├── dev.env.js
    │   ├── index.js
    │   ├── prod.env.js
    │   └── test.env.js
    ├── dist
    ├── docker-compose.yml
    ├── docker.sh
    ├── ecosystem.config.js
    ├── index.html
    ├── nginx
    │   ├── nginx.conf
    │   ├── web.conf
    │   └── webssl.conf
    ├── package-lock.json
    ├── package.json
    ├── server
    │   ├── app.js
    │   ├── config
    │   │   ├── index.js
    │   │   ├── private.pem
    │   │   └── public.pem
    │   ├── middlewares
    │   │   └── errorhandler.js
    │   ├── models
    │   │   ├── base_model.js
    │   │   ├── keyword.js
    │   │   ├── menu.js
    │   │   ├── page.js
    │   │   ├── user.js
    │   │   └── uuid.js
    │   ├── modules
    │   │   ├── keyword.js
    │   │   ├── menu.js
    │   │   ├── page.js
    │   │   ├── user.js
    │   │   └── uuid.js
    │   ├── router
    │   │   └── index.js
    │   └── utils
    │       ├── error.js
    │       ├── index.js
    │       ├── log.js
    │       └── token.js
    ├── src
    │   ├── App.vue
    │   ├── api
    │   │   ├── index.js
    │   │   ├── menu.js
    │   │   ├── page.js
    │   │   └── user.js
    │   ├── assets
    │   │   ├── css
    │   │   │   ├── common.css
    │   │   │   └── variable.scss
    │   │   ├── img
    │   │   │   ├── components.svg
    │   │   │   ├── css-framework.svg
    │   │   │   ├── get-started.svg
    │   │   │   ├── logo.png
    │   │   │   └── timg.jpg
    │   │   └── logo.png
    │   ├── components
    │   │   ├── container.vue
    │   │   ├── loading.vue
    │   │   ├── login.vue
    │   │   ├── menu.vue
    │   │   └── register.vue
    │   ├── config
    │   │   └── index.js
    │   ├── constant
    │   │   ├── colors.js
    │   │   ├── index.js
    │   │   ├── status.js
    │   │   └── userData.js
    │   ├── filters
    │   │   └── index.js
    │   ├── main.js
    │   ├── router
    │   │   └── index.js
    │   ├── utils
    │   │   ├── common.js
    │   │   ├── ua.js
    │   │   ├── validator.js
    │   │   └── web-worker.js
    │   └── views
    │       ├── detail.vue
    │       ├── editor.vue
    │       ├── index.vue
    │       ├── information.vue
    │       └── page.vue
    ├── static
    │   ├── css
    │   │   ├── font-awesome.css
    │   │   └── font-awesome.min.css
    │   ├── fonts
    │   │   ├── FontAwesome.otf
    │   │   ├── fontawesome-webfont.eot
    │   │   ├── fontawesome-webfont.svg
    │   │   ├── fontawesome-webfont.ttf
    │   │   ├── fontawesome-webfont.woff
    │   │   └── fontawesome-webfont.woff2
    │   └── js
    │       └── md5.js
    ├── test
    │   ├── e2e
    │   │   ├── custom-assertions
    │   │   │   └── elementCount.js
    │   │   ├── nightwatch.conf.js
    │   │   ├── runner.js
    │   │   └── specs
    │   │       └── test.js
    │   └── unit
    │       ├── index.js
    │       ├── karma.conf.js
    │       └── specs
    │           ├── index.spec.js
    │           └── menu.spec.js
    └── yarn.lock
    
    

    使用http方式部署

    编写web.conf

    image.png
    • 编写Dockerfile
    image.png

    使用https方式部署

    • 编写webssl.conf
    image.png
    • 编写Dockerfile
    image.png
    • 生成镜像
    docker build -t front .
    

    其中-t指定镜像名称,点则代表传递当前的工作目录

    • 运行容器
    docker run -d -p 80:80 front
    

    部署mongo服务

    • 获取mongo镜像

      • name参数:指定容器名称
      • network:指定容器网络
      • p:指定容器端口映射,左边的27017为本地端口,右边的27017为docker容器内的端口
    docker pull mongo
    
    • 运行mongodb服务
    docker run --name mongodb -p 27017:27017 -v /tmp/db:/data/db -d mongo:latest
    
    • 修改镜像配置文件,以支持远程连接mongo服务
    docker exec -it <mongodb容器id> bash
    
    • 安装vim
    apt-get update
    apt-install vim
    
    • 修改配置文件
    vim /etc/mongod.conf.orig
    # 注释bindIp或者ip改为0.0.0.0
    
    • 为mongo添加用户

      • 输入mongo,进入mongodb的环境
    use admin
    db.createUser(
      {
        user: "xxx",
        pwd: passwordPrompt(), // or cleartext password
        roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
      }
    )
    

    xxx为用户名,接着会提示password,输入密码,即可。

    部署node服务

    • 生成ecosystem.config.js
    image.png
    • 编写Dockerfile
    image.png
    • 生成镜像
      • -f指定使用哪个Dockerfile
    docker build -t end -f Dockerfile.node .
    
    • 开启容器
    docker run -d -p 3000:3000 --restart always end
    

    相关文章

      网友评论

          本文标题:docker进行前端应用部署

          本文链接:https://www.haomeiwen.com/subject/hjeznctx.html