You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
690 B
31 lines
690 B
FROM golang:1.25.1-alpine3.22 |
|
|
|
WORKDIR /usr/src/app |
|
|
|
# Install system dependencies |
|
RUN apk add --no-cache \ |
|
git \ |
|
bash \ |
|
curl \ |
|
sudo |
|
|
|
# Configure user and group IDs (default: 1000:1000) |
|
ARG USER_ID=1000 |
|
ARG GROUP_ID=1000 |
|
|
|
# Create a group and user with specific UID/GID |
|
RUN addgroup -g ${GROUP_ID} developer \ |
|
&& adduser -D -u ${USER_ID} -G developer -s /bin/bash developer \ |
|
&& echo "developer ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/developer \ |
|
&& chmod 0440 /etc/sudoers.d/developer |
|
|
|
RUN chown -R ${USER_ID}:${GROUP_ID} /usr/src/app |
|
|
|
USER developer |
|
|
|
# Install Go tools |
|
RUN go install github.com/go-delve/delve/cmd/dlv@latest |
|
|
|
EXPOSE 3000 |
|
|
|
CMD ["go", "run", "main.go"] |