-
Notifications
You must be signed in to change notification settings - Fork 194
Expand file tree
/
Copy pathDockerfile.dev-env
More file actions
66 lines (60 loc) · 1.68 KB
/
Dockerfile.dev-env
File metadata and controls
66 lines (60 loc) · 1.68 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
ARG FEDORA_REGISTRY=registry.fedoraproject.org
FROM ${FEDORA_REGISTRY}/fedora:42
# Install system dependencies
RUN dnf update -y && dnf install -y \
binutils-gold \
bzip2-devel \
curl \
gcc \
git \
golang-github-containerd-btrfs-devel \
gpgme-devel \
jq \
libassuan-devel \
libffi-devel \
lvm2 \
lvm2-devel \
make \
ncurses-devel \
openssl \
openssl-devel \
openssl-libs \
openvpn \
patch \
podman \
podman-docker \
python3-pip \
readline-devel \
sqlite-devel \
tk-devel \
wget \
which \
xz-devel \
zlib-devel \
&& dnf clean all
WORKDIR /workspace
COPY go.mod go.mod
RUN GO_VERSION=$(awk '/^go / {print $2}' go.mod) && \
ARCH=$(uname -m) && \
case "$ARCH" in \
x86_64) GO_ARCH=amd64 ;; \
aarch64) GO_ARCH=arm64 ;; \
*) echo "Unsupported architecture: $ARCH" && exit 1 ;; \
esac && \
wget -q "https://go.dev/dl/go${GO_VERSION}.linux-${GO_ARCH}.tar.gz" -O go.tar.gz && \
tar -C /usr/local -xzf go.tar.gz
ENV PATH="/usr/local/go/bin:${PATH}"
RUN /usr/local/go/bin/go install github.com/bwplotka/bingo@latest
COPY .bingo/ .bingo/
RUN export PATH="/usr/local/go/bin:/root/go/bin:$PATH" && \
/root/go/bin/bingo get
ENV PATH="/workspace/.bingo/bin:${PATH}"
# Create a non-root user matching the host UID for bind-mount permissions.
# On Linux with Podman userns=keep-id the UID mapping preserves file
# ownership; on macOS/Docker it ensures files written inside the container
# have the correct owner.
ARG USERID=1000
RUN useradd -l -m -u "${USERID}" -s /bin/bash aro-dev \
&& mkdir -p /run/podman \
&& chown aro-dev:aro-dev /run/podman
USER aro-dev