diff --git a/Claude.Dockerfile b/Claude.Dockerfile new file mode 100644 index 0000000..e494ba0 --- /dev/null +++ b/Claude.Dockerfile @@ -0,0 +1,86 @@ +FROM alpine:latest + +# Install system packages including SSH client and dependencies +RUN apk add --no-cache \ + bash \ + ca-certificates \ + curl \ + git \ + mariadb-client \ + openssh-client \ + openssh-client-default \ + openssl \ + php84 \ + php84-bcmath \ + php84-bz2 \ + php84-curl \ + php84-dom \ + php84-exif \ + php84-fileinfo \ + php84-gd \ + php84-gettext \ + php84-gmp \ + php84-iconv \ + php84-imap \ + php84-intl \ + php84-mbstring \ + php84-mysqlnd \ + php84-pdo \ + php84-pdo_mysql \ + php84-pdo_pgsql \ + php84-pdo_sqlite \ + php84-pecl-apcu \ + php84-pecl-igbinary \ + php84-pecl-grpc \ + php84-pecl-lzf \ + php84-pecl-maxminddb \ + php84-pecl-msgpack \ + php84-pecl-redis \ + php84-pgsql \ + php84-phar \ + php84-posix \ + php84-session \ + php84-simplexml \ + php84-soap \ + php84-sockets \ + php84-sodium \ + php84-sqlite3 \ + php84-tokenizer \ + php84-xml \ + php84-xmlreader \ + php84-xmlwriter \ + php84-zip \ + sqlite \ + tar \ + xz \ + nodejs \ + npm + +# Install Composer (essential for Laravel) +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +# Install Claude Code globally +RUN npm install -g @anthropic-ai/claude-code + +# Create directories for persistent data +RUN mkdir -p /root/.config/claude-code \ + && mkdir -p /root/.ssh \ + && mkdir -p /app + +# Set proper permissions for SSH +RUN chmod 700 /root/.ssh + +# Set environment variables +ENV HOME=/root +ENV USER=root + +# Set working directory +WORKDIR /app + +# Set bash as default shell +SHELL ["/bin/bash", "-c"] + +#USER 1000:1000 + +# Default command +CMD ["claude"] diff --git a/bin/rebuild-claude-docker.sh b/bin/rebuild-claude-docker.sh new file mode 100755 index 0000000..6606b5f --- /dev/null +++ b/bin/rebuild-claude-docker.sh @@ -0,0 +1,3 @@ +#!/usr/bin/bash + +docker build --tag claude-code-php84:latest --file Claude.Dockerfile . diff --git a/bin/run-claude-docker.sh b/bin/run-claude-docker.sh new file mode 100755 index 0000000..f752ed9 --- /dev/null +++ b/bin/run-claude-docker.sh @@ -0,0 +1,8 @@ +#!/usr/bin/bash + +docker run -it --rm \ + -v /code/php/sites/thepatterncreator:/app \ + -v /code/php/sites/thepatterncreator/claude-config:/root/.config/claude-code \ + -v /code/php/sites/thepatterncreator/mcps/ssh:/root/.ssh \ + --name claude-dev-weather \ + claude-code-php84