备注:

    首先需要安装 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. 2-4-搭建DHCP服务实现动态分配IP地址-NTP网络时间同步

    本节所讲内容: •DHCP服务器工作原理 •使用DHCP为局域网中的机器分配IP地址 •使用DHCP为服务器分配固定IP地址 •ntpdate加计划任务同步服务器时间 ---------------- ...

  2. nyoj115——裸dijksta(点之间最短路)

    城市平乱 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市 ...

  3. IOS-相机、相册

    // // ViewController.m // IOS_0301_相册和相机 // // Created by ma c on 16/3/1. // Copyright © 2016年 博文科技. ...

  4. pip 使用总结

    pip的安装: Windows Python2.7 以上的版本均自带pip,安装的时候记得勾选对应的选项即可. 安装easy_install, 通过easy_install pip 下载[easy_s ...

  5. Hessian序列化

    当子类定义了和父类同名的属性时,经过hessian传输,会导致该属性值丢失.因为hessian发送二进制数据时,子类数据在前,父类数据在后.接收二进制数据时,子类数据在前,父类数据在后.所以对于同名字 ...

  6. AngularJS如何修改URL中的参数

    一. 获取url的相关方法(不修改URL): 1.获取当前完整的url路径 var absurl = $location.absUrl(); //http://172.16.0.88:8100/#/h ...

  7. [转载]Java生成Word文档

    在开发文档系统或办公系统的过程中,有时候我们需要导出word文档.在网上发现了一个用PageOffice生成word文件的功能,就将这块拿出来和大家分享. 生成word文件与我们编辑word文档本质上 ...

  8. NPOI:初次操作(新建Excel)

    1. 由于在某些电脑上没有安装office,或者有权限限制,使用COM组件进行读写Excel的话会出现问题, 为此,NPOI是一个很好的选择,NPOI可以在上述环境中满足Office的操作需求,并且功 ...

  9. hdu 6040 Hints of sd0061(stl: nth_element(arr,arr+k,arr+n))

    Hints of sd0061 Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  10. MySQL pt-table-checksum及pt-table-sync校验及修复主从一致性

    [pt-table-checksum]pt-table-checksum是percona-toolkit系列工具中的一个, 可以用来检测主. 从数据库中数据的一致性.其原理是在主库上运行, 对同步的表 ...