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