Inital commit
This commit is contained in:
40
Dockerfile
Normal file
40
Dockerfile
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
FROM debian:trixie
|
||||||
|
|
||||||
|
RUN apt-get update -y && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
git \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
vim \
|
||||||
|
btop \
|
||||||
|
curl \
|
||||||
|
wget \
|
||||||
|
jq \
|
||||||
|
yq \
|
||||||
|
ca-certificates \
|
||||||
|
ssh \
|
||||||
|
dnsutils && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
ENV COLORTERM=truecolor
|
||||||
|
|
||||||
|
# Install Openspec
|
||||||
|
RUN npm i -g @fission-ai/openspec@latest
|
||||||
|
|
||||||
|
RUN useradd -ms /bin/bash m
|
||||||
|
|
||||||
|
USER m
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# Install Claude Code CLI
|
||||||
|
RUN curl -fsSL https://claude.ai/install.sh | bash
|
||||||
|
|
||||||
|
RUN mkdir -p ~/.ssh
|
||||||
|
RUN chmod 700 ~/.ssh
|
||||||
|
RUN ssh-keyscan github.com >> ~/.ssh/known_hosts
|
||||||
|
|
||||||
|
RUN echo 'alias clauded="claude --dangerously-skip-permissions"' >> ~/.bashrc
|
||||||
|
RUN echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
|
||||||
|
|
||||||
|
# Default command - keep container running
|
||||||
|
CMD ["bash"]
|
||||||
42
Makefile
Normal file
42
Makefile
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
DOCKER_IMAGE_NAME = claude-sdr-recorder
|
||||||
|
DOCKER_CONTAINER_NAME = claude-sdr-recorder
|
||||||
|
|
||||||
|
.PHONY: build run stop shell restart clean logs status
|
||||||
|
|
||||||
|
build:
|
||||||
|
docker build -t $(DOCKER_IMAGE_NAME) .
|
||||||
|
|
||||||
|
run:
|
||||||
|
docker run -d \
|
||||||
|
--name $(DOCKER_CONTAINER_NAME) \
|
||||||
|
--hostname $(DOCKER_CONTAINER_NAME) \
|
||||||
|
-v $(PWD):/workspace \
|
||||||
|
-v $(HOME)/.claude:/home/m/.claude \
|
||||||
|
-e CLAUDE_CONFIG_DIR=/home/m/.claude \
|
||||||
|
-v $(HOME)/.ssh/known_hosts:/home/m/.ssh/known_hosts:ro \
|
||||||
|
-v $(HOME)/.gitconfig:/home/m/.gitconfig:ro \
|
||||||
|
-v $(HOME)/.gitignore:/home/m/.gitignore:ro \
|
||||||
|
-v $(PWD)/ssh_config:/home/m/.ssh/config \
|
||||||
|
-v /run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock \
|
||||||
|
-e SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock \
|
||||||
|
-it \
|
||||||
|
$(DOCKER_IMAGE_NAME)
|
||||||
|
@echo "Container started. Use 'make shell' to access it"
|
||||||
|
|
||||||
|
stop:
|
||||||
|
docker stop $(DOCKER_CONTAINER_NAME) || true
|
||||||
|
docker rm $(DOCKER_CONTAINER_NAME) || true
|
||||||
|
|
||||||
|
shell:
|
||||||
|
docker exec -it $(DOCKER_CONTAINER_NAME) bash
|
||||||
|
|
||||||
|
restart: stop run
|
||||||
|
|
||||||
|
clean: stop
|
||||||
|
docker rmi $(DOCKER_IMAGE_NAME) || true
|
||||||
|
|
||||||
|
logs:
|
||||||
|
docker logs -f $(DOCKER_CONTAINER_NAME)
|
||||||
|
|
||||||
|
status:
|
||||||
|
@docker ps -a --filter name=$(DOCKER_CONTAINER_NAME)
|
||||||
Reference in New Issue
Block a user