-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathDockerfile
75 lines (70 loc) · 2.56 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
ARG NODE_VERSION=12.22.7
FROM node:${NODE_VERSION} AS install-root
WORKDIR /home/theia
ADD LICENSE LICENSE
ADD README.md README.md
ADD package.json package.json
ADD lerna.json lerna.json
ADD yarn.lock yarn.lock
RUN yarn install
FROM install-root AS install-packages
WORKDIR /home/theia
ADD packages packages
ADD config config
RUN yarn install-all-docker
# commit.json is at the top of the layers because it changes frequently
FROM install-packages AS copy-json
ADD *.json ./
# vs-upgrade-helper-plugin
# The plugin does not support being created using lerna. It has to be a standalone project.
ARG NODE_VERSION=12.22.7
FROM node:${NODE_VERSION} AS plugins
WORKDIR /home/plugins
ADD packages/vs-upgrade-helper-plugin/ .
COPY --from=install-packages --chown=theia:theia \
/home/theia/packages/vs-upgrade-helper-plugin/src/functions.ts \
/home/plugins/packages/vs-upgrade-helper-plugin/src
# Copy and run the 'show-dev-shortcuts' utility
ADD packages/shared-utils /tmp/packages/shared-utils
ADD packages/show-dev-shortcuts /tmp/packages/show-dev-shortcuts
ADD config/tools.json config/tools.json
RUN cd /tmp/packages/shared-utils && yarn install
RUN cd /tmp/packages/show-dev-shortcuts && yarn install
ARG dev_mode
RUN cd /tmp/packages/show-dev-shortcuts && yarn show-dev-shortcuts $dev_mode
# Build plugin
WORKDIR /home/plugins
RUN yarn install
RUN yarn compile
RUN yarn build
FROM whgovspm/theia:v1.14.0 as theia
FROM node:${NODE_VERSION}-alpine AS final
# See : https://github.com/theia-ide/theia-apps/issues/34
RUN addgroup theia && \
adduser -G theia -s /bin/sh -D theia;
RUN chmod g+rw /home && \
mkdir -p /home/workspace/input && \
mkdir -p /home/workspace/output && \
mkdir -p /home/workspace/rules && \
mkdir -p /home/workspace/ignore && \
mkdir -p /home/theia/.theia && \
mkdir -p /home/project && \
chown -R theia:theia /home/theia && \
chown -R theia:theia /home/workspace && \
chown -R theia:theia /home/project;
RUN apk add --no-cache git openssh bash libsecret
ENV HOME /home/theia
WORKDIR /home/theia
COPY --from=copy-json --chown=theia:theia /home/theia /home/theia
COPY --from=plugins --chown=theia:theia /home/plugins/*.vsix /home/theia/plugins/
COPY --from=theia --chown=theia:theia /home/theia /home/theia/browser-app
RUN cp -R /home/theia/browser-app/plugins/* /home/theia/plugins/
EXPOSE 3000
EXPOSE 4000-4005
ENV SHELL=/bin/bash \
THEIA_DEFAULT_PLUGINS=local-dir:/home/theia/plugins
ENV USE_LOCAL_GIT true
ENV GIT_DISCOVERY_ACROSS_FILESYSTEM 1
USER theia
RUN git config --global user.email "[email protected]"
ENTRYPOINT [ "yarn", "start" ]