diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..43df64f --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,49 @@ +# Use AlmaLinux as the base image +FROM almalinux:latest + +# Update and install necessary packages +RUN dnf update -y && \ + dnf install -y \ + git \ + python3 \ + wget \ + tar \ + shadow-utils \ + sudo \ + && dnf clean all + +# Set up arguments for Hugo installation +ARG HUGO_VERSION=latest +ARG HUGO_VARIANT=hugo_extended + +# Download and install Hugo +RUN if [ "$HUGO_VERSION" = "latest" ]; then \ + HUGO_VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}'); \ + fi && \ + echo "Installing Hugo version: ${HUGO_VERSION}" && \ + wget -O hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/${HUGO_VARIANT}_${HUGO_VERSION}_Linux-64bit.tar.gz && \ + tar -xzf hugo.tar.gz && \ + mv hugo /usr/local/bin/hugo && \ + chmod +x /usr/local/bin/hugo && \ + rm hugo.tar.gz + +# Create a non-root user for development +ARG USERNAME=vscode +ARG USER_UID=1000 +ARG USER_GID=$USER_UID + +RUN groupadd --gid $USER_GID $USERNAME \ + && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ + && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + && chmod 0440 /etc/sudoers.d/$USERNAME + +USER vscode + +# Expose port for Hugo server +EXPOSE 1313 + +# Set the working directory +WORKDIR /workspace + +# Set the default command to run Hugo server +CMD ["hugo", "server", "--bind=0.0.0.0"] \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..cd7a6a7 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,25 @@ +{ + "name": "AlmaLinux_WWW_Container", + "build": { + "dockerfile": "Dockerfile", + "args": { + "VARIANT": "hugo", + "VERSION": "latest" + } + }, + + "customizations": { + "vscode": { + "extensions": [ + "budparr.language-hugo-vscode", + "ms-python.python", + "esbenp.prettier-vscode", + "yzhang.markdown-all-in-one", + "tamasfe.even-better-toml" + ] + }, + "terminal.integrated.shell.linux": "/bin/bash" + }, + "forwardPorts": [1313], + "remoteUser": "vscode" +}