备注:

    首先需要安装 elixir 环境
 
1. 基本项目说明
参考项目:
https://github.com/rongfengliang/phoenix-rest-demo
2. 项目说明
备注: 主要是插件的配置

 mix.exs 

  defp deps do
[
{:phoenix, "~> 1.3.2"},
{:phoenix_pubsub, "~> 1.0"},
{:phoenix_ecto, "~> 3.2"},
{:postgrex, ">= 0.0.0"},
{:mariaex, "~> 0.8.4"},
{:phoenix_html, "~> 2.10"},
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:gettext, "~> 0.11"},
{:cowboy, "~> 1.0"},
{:distillery, "~> 1.5", runtime: false} # 需要添加的构建包
]
end
 
3. 使用
a. 初始化

首次使用需要进行环境的初始化

mix release.init

修改config/prod.exs

config :hello, Hello.Endpoint,
# http: [:inet6, port: {:system, "PORT"}],
http: [port: 4000],
cache_static_manifest: "priv/static/cache_manifest.json",
server: true # 比较重要的参数,启动的时候需要 b. 构建打包 mix release or MIX_ENV=prod mix release (生产环境建议) 备注: 可以指定环境 dev、 prod (默认为dev),实际中我们需要添加 MIX_ENV=prod mix release c. 使用生成的软件包 Interactive: _build/prod/rel/hello/bin/hello console
Foreground: _build/prod/rel/hello/bin/hello foreground
Daemon: _build/prod/rel/hello/bin/hello start
4. 生成项目结构
生成的项目在 _build/prod/rel/hello ,实际使用docker 或者类似的工具进行运行

备注:默认prod 版本,运行时环境也会为我们打包,运行是比较简单的,可以参考3.c

.
├── bin # 应用启动目录
├── erts-9.3 # 运行是环境
│ ├── bin
│ ├── include
│ │ └── internal
│ │ ├── gcc
│ │ ├── i386
│ │ ├── libatomic_ops
│ │ ├── ppc32
│ │ ├── pthread
│ │ ├── sparc32
│ │ ├── sparc64
│ │ ├── tile
│ │ ├── win
│ │ └── x86_64
│ ├── lib
│ │ └── internal
│ └── src
├── lib # 依赖的包
│ ├── asn1-5.0.5
│ │ ├── ebin
│ │ └── priv
│ │ └── lib
│ ├── compiler-7.1.5
│ │ └── ebin
│ ├── connection-1.0.4
│ │ └── ebin
│ ├── cowboy-1.1.2
│ │ └── ebin
│ ├── cowlib-1.0.2
│ │ ├── ebin
│ │ └── include
│ ├── crypto-4.2.1
│ │ ├── ebin
│ │ └── priv
│ │ ├── lib
│ │ └── obj
│ ├── db_connection-1.1.3
│ │ └── ebin
│ ├── decimal-1.5.0
│ │ └── ebin
│ ├── ecto-2.2.10
│ │ └── ebin
│ ├── eex-1.6.4
│ │ └── ebin
│ ├── elixir-1.6.4
│ │ └── ebin
│ ├── gettext-0.15.0
│ │ └── ebin
│ ├── hello-0.0.1
│ │ ├── consolidated
│ │ ├── ebin
│ │ └── priv
│ │ ├── gettext
│ │ │ └── en
│ │ │ └── LC_MESSAGES
│ │ ├── repo
│ │ │ └── migrations
│ │ └── static
│ │ ├── css
│ │ ├── images
│ │ └── js
│ ├── iex-1.6.4
│ │ └── ebin
│ ├── kernel-5.4.3
│ │ ├── ebin
│ │ └── include
│ ├── logger-1.6.4
│ │ └── ebin
│ ├── mariaex-0.8.4
│ │ └── ebin
│ ├── mime-1.2.0
│ │ └── ebin
│ ├── phoenix-1.3.2
│ │ ├── ebin
│ │ └── priv
│ │ ├── static
│ │ └── templates
│ │ ├── phoenix.gen.channel
│ │ ├── phoenix.gen.html
│ │ ├── phoenix.gen.json
│ │ ├── phoenix.gen.model
│ │ ├── phx.gen.channel
│ │ ├── phx.gen.context
│ │ ├── phx.gen.embedded
│ │ ├── phx.gen.html
│ │ ├── phx.gen.json
│ │ ├── phx.gen.presence
│ │ └── phx.gen.schema
│ ├── phoenix_ecto-3.3.0
│ │ └── ebin
│ ├── phoenix_html-2.11.2
│ │ ├── ebin
│ │ └── priv
│ │ └── static
│ ├── phoenix_pubsub-1.0.2
│ │ └── ebin
│ ├── plug-1.5.0
│ │ └── ebin
│ ├── poison-3.1.0
│ │ └── ebin
│ ├── poolboy-1.5.1
│ │ └── ebin
│ ├── postgrex-0.13.5
│ │ └── ebin
│ ├── public_key-1.5.2
│ │ ├── ebin
│ │ └── include
│ ├── ranch-1.3.2
│ │ └── ebin
│ ├── runtime_tools-1.12.5
│ │ ├── ebin
│ │ ├── include
│ │ └── priv
│ │ └── lib
│ ├── sasl-3.1.1
│ │ └── ebin
│ ├── ssl-8.2.5
│ │ └── ebin
│ └── stdlib-3.4.5
│ ├── ebin
│ └── include
└── releases # release 版本
└── 0.0.1
├── commands
├── hooks
│ ├── post_configure.d
│ ├── post_start.d
│ ├── post_stop.d
│ ├── post_upgrade.d
│ ├── pre_configure.d
│ ├── pre_start.d
│ ├── pre_stop.d
│ └── pre_upgrade.d
└── libexec
└── commands 同时在 releases/0.0.1 会有一个tar.gz 的包,这个是直接可以拷贝运行的软件包
 
5. 总结
总的来说,还是比较简单的,实际使用中我们可以集成docker,很方便
6 . 运行截图
 
7 . 参考资料
https://github.com/bitwalker/distillery
https://hexdocs.pm/phoenix/deployment.html
https://github.com/rongfengliang/phoenix-rest-demo
 
 
 
 

使用distillery 构建专业的 phoenix 项目软件包的更多相关文章

  1. 使用Maven构建RichFaces 4.x项目

    使用Maven构建RichFaces 4.x项目 目录 开始之前 第一步 - 创建Maven项目 第二布 - 添加依赖文件 第三步 - 配置RichFaces 第四步 - 创建显示页面 开始之前 本文 ...

  2. 三、使用Maven构建简单的java项目

    前边,我刚搭建了Maven环境,还有给大家推荐了学习资源,这个小节,我们来就来,,简单的玩玩maven. 1.所需工具: 1.Eclipse     2.apache-maven-3.3.9   3. ...

  3. yoeman构建Asp.net core项目并且实现分层

    在Mac上开发使用yoeman构建Asp.net core项目并且实现分层引用 1.Yoeman? yoeman是一个自动化脚手架工具.它提供很多generator,generator相当于Visua ...

  4. Maven构建真正的J2EE项目

    今天同事问起我眼下用Maven构建的多模块项目架构和曾经用Eclipse创建的Web项目的问题.以下将讲一下使用maven搭建多模块的J2ee项目,以及採用这样的方式搭建项目对日后项目的水平拆分和垂直 ...

  5. Gradle学习之构建java与web项目

    一.使用Gradle的java插件构建Java项目 1)Gradle插件包含了若干个接口定义和已有的任务项,语法结构:apply plugin:'插件名' ,此处我们定义插件 apply plugin ...

  6. eclipse构建maven的web项目(转载)

    eclipse构建maven的web项目 分类: java opensource2013-12-25 16:22 43人阅读 评论(0) 收藏 举报 maven框架webappwebeclipse 使 ...

  7. Gradle入门(3):构建第一个Java项目

    Gradle插件通过引入特定领域的约定和任务来构建你的项目.Java插件是Gradle自身装载的一个插件.Java插件提供的基本功能远比源代码编译和打包多.它为你的项目建立了一个标准的项目布局,并确保 ...

  8. Maven实现项目构建直接部署Web项目到Tomcat

    Maven实现项目构建直接部署Web项目到Tomcat配置如下: 1.Tomcat的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户. <ro ...

  9. Jenkins构建Maven多模块项目时,单独编译子模块,并且不触发构建其它模块

    一.Jenkins构建Maven多模块项目时,单独编译子模块 配置: 1.Root POM指向父pom.xml 2.Goals and options指定构建模块的参数:mvn -pl jsoft-w ...

随机推荐

  1. vs2012 在调试或运行的过程中不能加断点

    在使用VS2012 的过程中,突然发现在调试的过程中,不能加断点,显示断点未能绑定.在搜寻了很多解决方案后未能解决,3.23这一天,重装了VS也没有用. 便想着把网上所有的方法都试个遍也要解决这个问题 ...

  2. App压力测试MonkeyRunner整理

    压力测试结果:CRASH:崩溃,应用程序在使用过程中,非正常退出ANR:Application Not Responding 命令很多,不用死记,用到复制.粘贴就行,达到目的最重要. 简单通俗易懂点讲 ...

  3. Vue.directive使用注意

    首先,Vue.directive要在实例初始化之前,不然会报错,还有,定义的指令不支持驼峰式写法,也会报下面同样的错,虽然在源码中没有找到在哪里统一处理大小写,但是在有关directive的方法中捕捉 ...

  4. C++复习7.虚表的概念

    C++ 类的虚表 20130929 关键技术:封装.继承.组合.虚函数.抽象基类.动态绑定.多态性等等 1.首先整理一下在阿里巴巴面试遇到的函数虚表的问题. 在C++中的Class中的函数式存储在Cl ...

  5. HTML5音视频播放(Video,Audio)和常见的坑处理

    1. 前言背景 在HTML5出现之前,Web页面访问音视频主要是通过Flash,Activex插件,还有微软后来推出的silverlight来展现的,尽管FLASH曾经风靡全球,但是随着互联网的不断发 ...

  6. 状态保持: cookier及session简介

    状态保持 因为 http 是一种无状态协议,浏览器请求服务器是无状态的. 无状态:指一次用户请求时,浏览器.服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求. 无状态原因:浏览器与服务器是 ...

  7. APUE学习笔记——5.2流与文件对象、fwide

    1 流         当一个文件被打开时,可以获得文件描述符.通过文件描述符可以对文件进行I/O操作.而I/O操作是通过流完成的. 流的定向:         在Unix系统中,使用 ASCII标准 ...

  8. Python面向对象的三大特征 --- 封装、继承、多态

    一.封装 1)封装:是面向对象的一大特点:将属性和方法封装在一个抽象类中.外界使用类创建对象,然后让对象调用内部方法.对象方法的细节都被封装在类的内部. class Person():   def _ ...

  9. python爬虫入门(6)-Scrapy基本使用

    源码:链接:http://pan.baidu.com/s/1dEK82hb 密码:9flo   创建项目                                 scrapy startpro ...

  10. SQL基础四(例子)

    ------------------------------------------------ --分别创建student/course/score表 Create table student ( ...