/
Dockerfile
108 lines (83 loc) · 5.25 KB
/
Dockerfile
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
ARG COSMOS_REGISTRY=docker.io
ARG COSMOS_TAG=latest
FROM ${COSMOS_REGISTRY}/ballaerospace/cosmosc2-node:${COSMOS_TAG} AS cosmos-frontend-tmp
WORKDIR /cosmos/plugins/
USER root
COPY ./plugins/*.json ./
COPY ./plugins/cosmosc2-tool-base/*.json cosmosc2-tool-base/
COPY ./plugins/packages/cosmosc2-tool-admin/*.json packages/cosmosc2-tool-admin/
COPY ./plugins/packages/cosmosc2-tool-autonomic/*.json packages/cosmosc2-tool-autonomic/
COPY ./plugins/packages/cosmosc2-tool-calendar/*.json packages/cosmosc2-tool-calendar/
COPY ./plugins/packages/cosmosc2-tool-cmdsender/*.json packages/cosmosc2-tool-cmdsender/
COPY ./plugins/packages/cosmosc2-tool-cmdtlmserver/*.json packages/cosmosc2-tool-cmdtlmserver/
COPY ./plugins/packages/cosmosc2-tool-dataextractor/*.json packages/cosmosc2-tool-dataextractor/
COPY ./plugins/packages/cosmosc2-tool-dataviewer/*.json packages/cosmosc2-tool-dataviewer/
COPY ./plugins/packages/cosmosc2-tool-limitsmonitor/*.json packages/cosmosc2-tool-limitsmonitor/
COPY ./plugins/packages/cosmosc2-tool-packetviewer/*.json packages/cosmosc2-tool-packetviewer/
COPY ./plugins/packages/cosmosc2-tool-scriptrunner/*.json packages/cosmosc2-tool-scriptrunner/
COPY ./plugins/packages/cosmosc2-tool-tablemanager/*.json packages/cosmosc2-tool-tablemanager/
COPY ./plugins/packages/cosmosc2-tool-tlmgrapher/*.json packages/cosmosc2-tool-tlmgrapher/
COPY ./plugins/packages/cosmosc2-tool-tlmviewer/*.json packages/cosmosc2-tool-tlmviewer/
COPY ./plugins/packages/cosmosc2-tool-common/ packages/cosmosc2-tool-common/
COPY ./plugins/packages/cosmosc2-demo/*.json packages/cosmosc2-demo/
ARG NPM_URL
RUN yarn config set registry $NPM_URL && yarn --network-timeout 100000
COPY ./plugins/docker-package-build.sh ./plugins/docker-package-install.sh ./plugins/babel.config.js ./plugins/.eslintrc.js ./plugins/.nycrc ./
RUN chmod +x ./docker-package-build.sh ./docker-package-install.sh
COPY ./plugins/cosmosc2-tool-base/ cosmosc2-tool-base/
RUN ["/cosmos/plugins/docker-package-install.sh", "cosmosc2-tool-base"]
# Build admin tool
FROM cosmos-frontend-tmp AS cosmos-tmp1
COPY ./plugins/packages/cosmosc2-tool-admin/ packages/cosmosc2-tool-admin/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-admin"]
# Build cmdsender tool
COPY ./plugins/packages/cosmosc2-tool-cmdsender/ packages/cosmosc2-tool-cmdsender/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-cmdsender"]
# Build cmdtlmserver tool
COPY ./plugins/packages/cosmosc2-tool-cmdtlmserver/ packages/cosmosc2-tool-cmdtlmserver/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-cmdtlmserver"]
# Build dataextractor tool
FROM cosmos-frontend-tmp AS cosmos-tmp2
COPY ./plugins/packages/cosmosc2-tool-dataextractor/ packages/cosmosc2-tool-dataextractor/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-dataextractor"]
# Build dataviewer tool
COPY ./plugins/packages/cosmosc2-tool-dataviewer/ packages/cosmosc2-tool-dataviewer/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-dataviewer"]
# Build limitsmonitor tool
COPY ./plugins/packages/cosmosc2-tool-limitsmonitor/ packages/cosmosc2-tool-limitsmonitor/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-limitsmonitor"]
# Build packetviewer tool
FROM cosmos-frontend-tmp AS cosmos-tmp3
COPY ./plugins/packages/cosmosc2-tool-packetviewer/ packages/cosmosc2-tool-packetviewer/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-packetviewer"]
# Build scriptrunner tool
COPY ./plugins/packages/cosmosc2-tool-scriptrunner/ packages/cosmosc2-tool-scriptrunner/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-scriptrunner"]
# Build calendar tool
COPY ./plugins/packages/cosmosc2-tool-calendar/ packages/cosmosc2-tool-calendar/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-calendar"]
# Build tablemanager tool
COPY ./plugins/packages/cosmosc2-tool-tablemanager/ packages/cosmosc2-tool-tablemanager/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-tablemanager"]
# Build tlmgrapher tool
FROM cosmos-frontend-tmp AS cosmos-tmp4
COPY ./plugins/packages/cosmosc2-tool-tlmgrapher/ packages/cosmosc2-tool-tlmgrapher/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-tlmgrapher"]
# Build tlmviewer tool
COPY ./plugins/packages/cosmosc2-tool-tlmviewer/ packages/cosmosc2-tool-tlmviewer
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-tlmviewer"]
# Build autonomic tool
COPY ./plugins/packages/cosmosc2-tool-autonomic/ packages/cosmosc2-tool-autonomic/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-tool-autonomic"]
# Build demo config
COPY ./plugins/packages/cosmosc2-demo/ packages/cosmosc2-demo/
RUN ["/cosmos/plugins/docker-package-build.sh", "cosmosc2-demo"]
FROM cosmos-frontend-tmp AS cosmos-frontend-base-tmp
COPY --from=cosmos-tmp1 /cosmos/plugins/gems/* /cosmos/plugins/gems/
COPY --from=cosmos-tmp2 /cosmos/plugins/gems/* /cosmos/plugins/gems/
COPY --from=cosmos-tmp3 /cosmos/plugins/gems/* /cosmos/plugins/gems/
COPY --from=cosmos-tmp4 /cosmos/plugins/gems/* /cosmos/plugins/gems/
FROM ${COSMOS_REGISTRY}/ballaerospace/cosmosc2-base:${COSMOS_TAG}
COPY --from=cosmos-frontend-base-tmp --chown=${IMAGE_USER}:${IMAGE_GROUP} /cosmos/plugins/gems/* /cosmos/plugins/gems/
COPY --chown=${IMAGE_USER}:${IMAGE_GROUP} ./init.sh /cosmos/
CMD [ "/cosmos/init.sh" ]