mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 22:32:04 +00:00
- Introduced a new `docker-compose.dev.yml` for development mode, enabling live reload and improved container management. - Updated `dev.mjs` to utilize `launchDockerDevContainers` for starting development containers with live reload capabilities. - Refactored `printModeMenu` to differentiate between development and production Docker options. - Enhanced the `BoardView` and `KanbanBoard` components by streamlining props and improving UI interactions. - Removed the `start.mjs` script, consolidating production launch logic into `dev.mjs` for a more unified approach.
81 lines
2.7 KiB
Docker
81 lines
2.7 KiB
Docker
# Automaker Development Dockerfile
|
|
# For development with live reload via volume mounting
|
|
# Source code is NOT copied - it's mounted as a volume
|
|
#
|
|
# Usage:
|
|
# docker compose -f docker-compose.dev.yml up
|
|
|
|
FROM node:22-slim
|
|
|
|
# Install build dependencies for native modules (node-pty) and runtime tools
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
python3 make g++ \
|
|
git curl bash gosu ca-certificates openssh-client \
|
|
&& GH_VERSION="2.63.2" \
|
|
&& ARCH=$(uname -m) \
|
|
&& case "$ARCH" in \
|
|
x86_64) GH_ARCH="amd64" ;; \
|
|
aarch64|arm64) GH_ARCH="arm64" ;; \
|
|
*) echo "Unsupported architecture: $ARCH" && exit 1 ;; \
|
|
esac \
|
|
&& curl -L "https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_linux_${GH_ARCH}.tar.gz" -o gh.tar.gz \
|
|
&& tar -xzf gh.tar.gz \
|
|
&& mv gh_${GH_VERSION}_linux_${GH_ARCH}/bin/gh /usr/local/bin/gh \
|
|
&& rm -rf gh.tar.gz gh_${GH_VERSION}_linux_${GH_ARCH} \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Claude CLI globally
|
|
RUN npm install -g @anthropic-ai/claude-code
|
|
|
|
# Create non-root user
|
|
RUN groupadd -g 1001 automaker && \
|
|
useradd -u 1001 -g automaker -m -d /home/automaker -s /bin/bash automaker && \
|
|
mkdir -p /home/automaker/.local/bin && \
|
|
mkdir -p /home/automaker/.cursor && \
|
|
chown -R automaker:automaker /home/automaker && \
|
|
chmod 700 /home/automaker/.cursor
|
|
|
|
# Install Cursor CLI as automaker user
|
|
USER automaker
|
|
ENV HOME=/home/automaker
|
|
RUN curl https://cursor.com/install -fsS | bash || true
|
|
USER root
|
|
|
|
# Add PATH to profile for Cursor CLI
|
|
RUN mkdir -p /etc/profile.d && \
|
|
echo 'export PATH="/home/automaker/.local/bin:$PATH"' > /etc/profile.d/cursor-cli.sh && \
|
|
chmod +x /etc/profile.d/cursor-cli.sh
|
|
|
|
# Add to user bashrc files
|
|
RUN echo 'export PATH="/home/automaker/.local/bin:$PATH"' >> /home/automaker/.bashrc && \
|
|
chown automaker:automaker /home/automaker/.bashrc
|
|
RUN echo 'export PATH="/home/automaker/.local/bin:$PATH"' >> /root/.bashrc
|
|
|
|
WORKDIR /app
|
|
|
|
# Create directories with proper permissions
|
|
RUN mkdir -p /data /projects && chown automaker:automaker /data /projects
|
|
|
|
# Configure git for mounted volumes
|
|
RUN git config --system --add safe.directory '*' && \
|
|
git config --system credential.helper '!gh auth git-credential'
|
|
|
|
# Copy entrypoint script
|
|
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
|
|
|
# Environment variables
|
|
ENV PORT=3008
|
|
ENV DATA_DIR=/data
|
|
ENV HOME=/home/automaker
|
|
ENV PATH="/home/automaker/.local/bin:${PATH}"
|
|
|
|
# Expose both dev ports
|
|
EXPOSE 3007 3008
|
|
|
|
# Use entrypoint for permission handling
|
|
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
|
|
|
# Default command - will be overridden by docker-compose
|
|
CMD ["npm", "run", "dev:web"]
|