Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
56fcf9c1
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
56fcf9c1
编写于
3月 14, 2017
作者:
Y
Yi Wang
提交者:
GitHub
3月 14, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1602 from gongweibao/builddockerimage
Build docker image
上级
e9166edd
815b4913
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
38 addition
and
0 deletion
+38
-0
paddle/scripts/docker/README.md
paddle/scripts/docker/README.md
+38
-0
未找到文件。
paddle/scripts/docker/README.md
0 → 100644
浏览文件 @
56fcf9c1
因为我们不提供非Ubuntu的bulid支持,所以如果用户用其他操作系统,比如CoreOS、CentOS、MacOS X、Windows,开发都得在docker里。所以需要能build本地修改后的代码。
我们可能需要两个 Docker images:
1.
development image:不包括源码,但是包括开发环境(预先安装好各种工具),也就是说Dockerfile.dev里既不需要 COPY 也不需要 RUN git clone。虽然这个image和源码无关,但是不同版本的源码需要依赖不同的第三方库,所以这个image的tag里还是要包含git branch/tag name,比如叫做
`paddlepaddle/paddle:dev-0.10.0rc1`
,这里的0.10.0.rc1是一个branch name,其中rc是release candidate的意思。正是发布之后就成了master branch里的一个tag,叫做0.10.0。
1.
production image: 不包括编译环境,也不包括源码,只包括build好的libpaddle.so和必要的Python packages,用于在Kubernetes机群上跑应用的image。比如叫做
`paddlepaddle/paddle:0.10.0rc1`
。
从1.生成2.的过程如下:
1.
在本机(host)上开发。假设源码位于
`~/work/paddle`
。
1.
用dev image build 我们的源码:
```
bash
docker run
-it
-p
2022:22
-v
$PWD
:/paddle paddlepaddle/paddle:dev-0.10.0rc1 /paddle/build.sh
```
注意,这里的
`-v `
参数把host上的源码目录里的内容映射到了container里的
`/paddle`
目录;而container里的
`/paddle/build.sh`
就是源码目录里的
`build.sh`
。上述命令调用了本地源码中的 bulid.sh 来build了本地源码,结果在container里的
`/paddle/build`
目录里,也就是本地的源码目录里的
`build`
子目录。
1.
我们希望上述
`build.sh`
脚本在
`build`
子目录里生成一个Dockerfile,使得我们可以运行:
```
bash
docker build
-t
paddle ./build
```
来生成我们的production image。
1.
有了这个production image之后,我们可能会希望docker push 到dockerhub.com的我们自己的名下,然后可以用来启动本地或者远程(Kubernetes)jobs:
```
bash
docker tag paddle yiwang/paddle:did-some-change
docker push
paddlectl run yiwang/paddle:did-some-change /paddle/demo/mnist/train.py
```
其中 paddlectl 应该是我们自己写的一个脚本,调用kubectl来在Kubernetes机群上启动一个job的。
曾经的讨论背景:
[
"PR 1599"
](
https://github.com/PaddlePaddle/Paddle/pull/1599
)
[
"PR 1598"
](
https://github.com/PaddlePaddle/Paddle/pull/1598
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录