-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsample_build.yaml
More file actions
151 lines (138 loc) · 4.89 KB
/
sample_build.yaml
File metadata and controls
151 lines (138 loc) · 4.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# You can either use this individual build.yaml file or
# specify the build specifications in the global spec.yaml
builds:
# templates that can referred by different build steps, stages etc.
templates:
- name: template-1
cmd:
- docker:
# either inline or path
# raw docker commands
inline:
- RUN pip install kubernetes
- COPY app/ /bin/app
# path to a file that contains the docker commands
path: .yaml file
# either local or galaxy
- ansible:
local:
# optional
requirements: path-to-requirements.yaml
playbook: path-to-playbook.yaml
galaxy:
name: name-of-the_role
- docker:
# raw docker commands
inline:
- RUN pip install kubernetes
- COPY app/ /bin/app
- CMD ["python", "/bin/app/hello.py"]
# path to a docker commands file
path: .yaml file
- ansible:
# either local or galaxy
local:
requirements: path-to-requirements.yaml
playbook: path-to-playbook.yaml
galaxy:
name: name-of-the-role
steps:
- # metadata about the build
metadata:
name: name-of-the-build
labels:
type: build-1
# override existing ones or set new ones
# the context of these vars are just for this build step.
# the overridden ones will remain pristine for next build.
env:
- name: key1
value: valuexx
# use daemon? optional. defaults to true
daemon: false # we will use buildah for builds that have docker daemon marked explicitly to false
# stages to build an image.
stages:
- # metadata about the stage
metadata:
# this will be used as name of the stage inside Dockerfile
name: name-of-the-stage
labels:
stage: stage-1
type: build-from-base
# base image to use to build this stage
base:
image: go / java / nodejs / python
# optional. If not provided framework will decide the tag for the image
tag: v1.0.0
# optional
platform: ubuntu_xenial
# refer to a template
template: template-1
- # metadata about the stage
metadata:
# this will be used as name of the stage inside Dockerfile
name: name-of-the-stage
labels:
stage: stage-1
type: build-from-base
base:
image: alpine
tag: latest
# You can either define the commands here or refer a template
cmd:
- docker:
# raw docker commands
inline:
- CMD ["echo", "done"]
# optional. tag for the image. defaults to latest
tag: v0.1.0
# optional. minimal image. defaults to false.
distroless: true
# optional. for no-cache. defaults to false
cache: false
# optional. purge policy
purge: true # default
# another build for same thing with ubuntu_bionic as base :)
- # metadata about the build
metadata:
name: build-2
labels:
type: build-2
# stages to build an image.
stages:
- # metadata about the stage
metadata:
# this will be used as name of the stage inside Dockerfile
name: name-of-the-stage
labels:
stage: stage-1
type: build-from-base
# base image to use to build this stage
base:
image: go / java / nodejs / python
# optional. If not provided framework will decide the tag for the image
tag: v1.0.0
# optional
platform: ubuntu_bionic
# refer to a template
template: template-1
- # metadata about the stage
metadata:
# this will be used as name of the stage inside Dockerfile
name: name-of-the-stage
labels:
stage: stage-1
type: build-from-base
base:
image: alpine
tag: latest
# You can either define the commands here or refer a template
cmd:
- docker:
# raw docker commands
inline:
- CMD ["echo", "hello"]
# optional. tag for the image. defaults to latest
tag: v0.1.0
# optiona. for no-cache. defaults to false
cache: false