-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
37 lines (27 loc) · 937 Bytes
/
Dockerfile
File metadata and controls
37 lines (27 loc) · 937 Bytes
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
ARG BASE_IMAGE_VERSION
FROM debian:${BASE_IMAGE_VERSION} AS base
RUN apt update && \
apt install -y libcec-dev libp8-platform-dev libudev-dev ca-certificates pkg-config gcc g++ && \
rm -rf /var/lib/apt/lists/*
COPY --from=golang:1.24 /usr/local/go/ /usr/local/go/
ENV PATH="/usr/local/go/bin:${PATH}"
FROM base AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN --mount=type=cache,target=/go/pkg/mod \
go mod download
COPY . .
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
go build .
FROM base AS devenv
RUN apt update && \
apt install -y sudo && \
rm -rf /var/lib/apt/lists/*
RUN groupadd -r developer && \
useradd -r -g developer developer && \
echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
mkdir -p /home/developer && \
chown developer:developer /home/developer
USER developer
SHELL ["/bin/bash", "-c"]