-
Notifications
You must be signed in to change notification settings - Fork 25
/
Dockerfile
129 lines (106 loc) · 3.39 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# ARGUMENTS --------------------------------------------------------------------
##
# Base container version
##
ARG BASE_VERSION=3.3.1
##
# Directory of the application inside container
##
ARG APP_ROOT=
##
# Board architecture
##
ARG IMAGE_ARCH=
##
# Board GPU vendor prefix
##
ARG GPU=
FROM --platform=linux/${IMAGE_ARCH} \
commontorizon/wayland-base${GPU}:${BASE_VERSION} AS build
ARG IMAGE_ARCH
ARG GPU
ARG APP_ROOT
# stick to bookworm on /etc/apt/sources.list.d
RUN sed -i 's/sid/bookworm/g' /etc/apt/sources.list.d/debian.sources
# add the Microsoft OpenJDK repo
RUN apt-get install wget -y && \
wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
dpkg -i packages-microsoft-prod.deb
# __deps__
RUN apt-get -q -y update && \
apt-get -q -y install \
ant \
msopenjdk-21 \
# ADD YOUR PACKAGES HERE
# DO NOT REMOVE THIS LABEL: this is used for VS Code automation
# __torizon_packages_build_start__
# __torizon_packages_build_end__
# DO NOT REMOVE THIS LABEL: this is used for VS Code automation
&& \
apt-get clean && apt-get autoremove && \
rm -rf /var/lib/apt/lists/*
# __deps__
COPY . ${APP_ROOT}
WORKDIR ${APP_ROOT}
RUN ant jar
FROM --platform=linux/${IMAGE_ARCH} \
commontorizon/wayland-base${GPU}:${BASE_VERSION} AS deploy
ARG IMAGE_ARCH
ARG GPU
ARG APP_ROOT
# SSH for remote debug
EXPOSE 2231
ARG SSHUSERNAME=torizon
# Make sure we don't get notifications we can't answer during building.
ENV DEBIAN_FRONTEND="noninteractive"
# stick to bookworm on /etc/apt/sources.list.d
RUN sed -i 's/sid/bookworm/g' /etc/apt/sources.list.d/debian.sources
# for vivante GPU we need some "special" sauce
RUN apt-get -q -y update && \
if [ "${GPU}" = "-vivante" ] || [ "${GPU}" = "-imx8" ]; then \
apt-get -q -y install \
imx-gpu-viv-wayland-dev \
; else \
apt-get -q -y install \
libgl1 \
; fi \
&& \
apt-get clean && apt-get autoremove && \
rm -rf /var/lib/apt/lists/*
# add the Microsoft OpenJDK repo
# TODO: we are using the release of the Debian 10
# TODO: we need to check for updates on the repo
RUN apt-get install wget -y && \
wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
dpkg -i packages-microsoft-prod.deb
# your regular RUN statements here
# Install required packages
RUN apt-get -q -y update && \
apt-get -q -y install \
file \
tzdata \
locales \
fontconfig \
libxrender1 \
libxtst6 \
libxi6 \
# TODO: use JLINK instead
msopenjdk-21 \
# DOES NOT REMOVE THIS LABEL: this is used for VS Code automation
# __torizon_packages_prod_start__
# __torizon_packages_prod_end__
# DO NOT REMOVE THIS LABEL: this is used for VS Code automation
&& \
apt-get clean && apt-get autoremove && \
rm -rf /var/lib/apt/lists/*
USER torizon
COPY ./libs ${APP_ROOT}/libs
COPY ./assets ${APP_ROOT}/assets
# Copy the application compiled in the build step to the $APP_ROOT directory
# path inside the container, where $APP_ROOT is the torizon_app_root
# configuration defined in settings.json
COPY --from=build ${APP_ROOT} ${APP_ROOT}
# "cd" (enter) into the APP_ROOT directory
WORKDIR ${APP_ROOT}
# Command executed in runtime when the container starts
CMD [ "java", "-cp","libs/*:dist/__change__.jar", "__change__.Form1" ]