dockerfile

This commit is contained in:
Jun-te Kim 2026-04-15 14:43:30 +00:00
parent c561732baf
commit e0f1b4f871
3 changed files with 53 additions and 4 deletions

View file

@ -1,6 +1,9 @@
FROM library/python:3.12-bullseye
ARG USER=vscode
ARG USER_UID=1000
ARG USER_GID=1000
ARG DEBIAN_FRONTEND=noninteractive
# Install system dependencies in a single layer
@ -37,6 +40,15 @@ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
# RUN apt-get install terraform
# RUN terraform -install-autocomplete
# Install Claude
USER ${USER}
RUN curl -fsSL https://claude.ai/install.sh | bash \
&& export PATH="/home/${USER}/.local/bin:${PATH}" \
&& claude plugin marketplace add JuliusBrussee/caveman \
&& claude plugin install caveman@caveman
ENV PATH="/home/vscode/.local/bin:${PATH}"
USER root
# Set the working directory
WORKDIR /workspaces/assessment-model

View file

@ -1,11 +1,11 @@
version: "3.8"
services:
frontend:
user: "${UID}:${GID}"
build:
context: ..
dockerfile: .devcontainer/Dockerfile
args:
USER_UID: ${UID:-1000}
USER_GID: ${GID:-1000}
command: sleep infinity
ports:
- "3000:3000"

View file

@ -7,11 +7,13 @@ import {
DocumentMagnifyingGlassIcon,
ChevronDownIcon,
DocumentPlusIcon,
RectangleStackIcon,
} from "@heroicons/react/24/outline";
import { cn } from "@/lib/utils";
import { useRouter } from "next/navigation";
import { Dispatch, SetStateAction, useState } from "react";
import BulkUploadComingSoonModal from "@/app/components/portfolio/BulkUploadComingSoonModal";
interface AddNewProps {
portfolioId: string;
@ -26,6 +28,7 @@ export default function AddNew({
}: AddNewProps) {
const router = useRouter();
const [loadingRemote, setLoadingRemote] = useState(false);
const [isBulkUploadOpen, setIsBulkUploadOpen] = useState(false);
function handleRemoteAssessment() {
setLoadingRemote(true);
@ -33,6 +36,12 @@ export default function AddNew({
}
return (
<>
<BulkUploadComingSoonModal
isOpen={isBulkUploadOpen}
onClose={() => setIsBulkUploadOpen(false)}
portfolioId={portfolioId}
/>
<Menu as="div" className="relative inline-block text-left">
<MenuButton
className="
@ -98,7 +107,34 @@ export default function AddNew({
File Import
</span>
<span className="text-xs text-gray-500 leading-snug">
Upload an Excel or CSV file containing multiple units.
For bulk uploads, please contact a Domna user.
</span>
</div>
</button>
)}
</MenuItem>
{/* Bulk Upload (Coming Soon) */}
<MenuItem>
{({ active }) => (
<button
onClick={() => setIsBulkUploadOpen(true)}
className={cn(
"w-full p-3 rounded-lg text-left flex gap-3 transition-colors",
active && "bg-gray-100"
)}
>
<RectangleStackIcon className="h-5 w-5 text-gray-700 mt-[2px]" />
<div className="flex flex-col">
<span className="text-sm font-medium text-gray-900 flex items-center gap-2">
new: Bulk upload
<span className="text-[10px] font-semibold text-amber-700 bg-amber-100 px-1.5 py-0.5 rounded-full leading-none">
coming soon
</span>
</span>
<span className="text-xs text-gray-500 leading-snug">
Upload multiple addresses in one go.
</span>
</div>
</button>
@ -107,5 +143,6 @@ export default function AddNew({
</div>
</MenuItems>
</Menu>
</>
);
}