mirror of https://github.com/wg-easy/wg-easy
2 changed files with 57 additions and 1 deletions
@ -0,0 +1,56 @@ |
|||
# As a workaround we have to build on nodejs 18 |
|||
# nodejs 20 hangs on build with armv6/armv7 |
|||
FROM docker.io/library/node:18-alpine AS build_node_modules |
|||
|
|||
# Install pnpm |
|||
RUN corepack enable pnpm |
|||
|
|||
# Copy Web UI |
|||
COPY src /app |
|||
WORKDIR /app |
|||
RUN pnpm install |
|||
|
|||
# Build UI |
|||
RUN pnpm build |
|||
|
|||
RUN mv node_modules /node_modules |
|||
|
|||
# Copy build result to a new image. |
|||
# This saves a lot of disk space. |
|||
FROM docker.io/library/node:20-alpine |
|||
HEALTHCHECK CMD /usr/bin/timeout 5s /bin/sh -c "/usr/bin/wg show | /bin/grep -q interface || exit 1" --interval=1m --timeout=5s --retries=3 |
|||
COPY --from=build_node_modules /app /app |
|||
|
|||
# Move node_modules one directory up, so during development |
|||
# we don't have to mount it in a volume. |
|||
# This results in much faster reloading! |
|||
# |
|||
# Also, some node_modules might be native, and |
|||
# the architecture & OS of your development machine might differ |
|||
# than what runs inside of docker. |
|||
COPY --from=build_node_modules /node_modules /node_modules |
|||
|
|||
# Copy the needed wg-password scripts |
|||
COPY --from=build_node_modules /app/wgpw.sh /bin/wgpw |
|||
RUN chmod +x /bin/wgpw |
|||
|
|||
# Install Linux packages |
|||
RUN apk add --no-cache \ |
|||
dpkg \ |
|||
dumb-init \ |
|||
iptables \ |
|||
iptables-legacy \ |
|||
wireguard-tools |
|||
|
|||
# Install pnpm |
|||
RUN corepack enable pnpm |
|||
|
|||
# Use iptables-legacy |
|||
RUN update-alternatives --install /sbin/iptables iptables /sbin/iptables-legacy 10 --slave /sbin/iptables-restore iptables-restore /sbin/iptables-legacy-restore --slave /sbin/iptables-save iptables-save /sbin/iptables-legacy-save |
|||
|
|||
# Set Environment |
|||
ENV DEBUG=Server,WireGuard |
|||
ENV PORT=51821 |
|||
|
|||
# Run Web UI |
|||
WORKDIR /app |
Loading…
Reference in new issue