Skip to content

Commit 6c6c464

Browse files
committed
Add Dockerfile and CI workflow for Docker image; ignore local assistant state files
1 parent e821577 commit 6c6c464

File tree

3 files changed

+80
-1
lines changed

3 files changed

+80
-1
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# GitHub Action: Build & Push Docker image to Docker Hub
2+
# Requires two repository secrets:
3+
# DOCKERHUB_USERNAME – your Docker Hub username (e.g. xpert123)
4+
# DOCKERHUB_TOKEN – a Personal Access Token with "write:push" scope
5+
#
6+
# On every push to main (or when Docker-related files change) this will
7+
# build the image and push the tag `latest`.
8+
# Adjust the `tags:` value if you need versioned tags.
9+
10+
name: Docker Image CI
11+
12+
on:
13+
push:
14+
branches: [main]
15+
paths:
16+
- "Dockerfile"
17+
- "requirements.txt"
18+
- "**/*.py"
19+
- ".github/workflows/docker-publish.yml"
20+
21+
jobs:
22+
build-and-push:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout code
26+
uses: actions/checkout@v3
27+
28+
- name: Set up QEMU (multi-arch builds)
29+
uses: docker/setup-qemu-action@v2
30+
31+
- name: Set up Docker Buildx
32+
uses: docker/setup-buildx-action@v2
33+
34+
- name: Log in to Docker Hub
35+
uses: docker/login-action@v2
36+
with:
37+
username: ${{ secrets.DOCKERHUB_USERNAME }}
38+
password: ${{ secrets.DOCKERHUB_TOKEN }}
39+
40+
- name: Build and push image
41+
uses: docker/build-push-action@v4
42+
with:
43+
context: .
44+
push: true
45+
tags: xpert123/chris2004m:latest

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@ data/GCF_000001405.40/protein.faa
77
Context.md
88
CLAUDE.md
99
test.fasta
10-
process-todos.md
10+
process-todos.md
11+
.claude
12+
.codebuddy

Dockerfile

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# syntax=docker/dockerfile:1
2+
3+
# Lightweight official Python image
4+
FROM python:3.10-slim
5+
6+
# Environment settings
7+
ENV PYTHONDONTWRITEBYTECODE=1 \
8+
PYTHONUNBUFFERED=1 \
9+
PIP_NO_CACHE_DIR=1 \
10+
DEBIAN_FRONTEND=noninteractive
11+
12+
# System deps required by some Python libs (e.g. transformers pulls via git)
13+
RUN apt-get update \
14+
&& apt-get install -y --no-install-recommends git curl \
15+
&& rm -rf /var/lib/apt/lists/*
16+
17+
# Create app directory
18+
WORKDIR /app
19+
20+
# Copy dependency list first for layer caching
21+
COPY requirements.txt ./
22+
23+
# Install Python dependencies
24+
RUN pip install --upgrade pip \
25+
&& pip install -r requirements.txt
26+
27+
# Copy rest of the project
28+
COPY . .
29+
30+
# Default entrypoint shows help for the generator script
31+
ENTRYPOINT ["python", "generate_control_peptides.py"]
32+
CMD ["--help"]

0 commit comments

Comments
 (0)