FROM ubuntu:22.04 as base WORKDIR /app ENV NODE_ENV=production FROM base as build RUN apt-get update -qq && \ apt-get install -y git curl unzip wget gnupg build-essential lsb-release RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \ apt-get install -y nodejs RUN useradd -m -u 1000 user RUN chown -R user:user /app /usr/local /tmp USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH WORKDIR $HOME/app RUN git clone https://github.com/a16z-infra/ai-town.git . && \ git checkout f005c46d1759b47bb3ade8d41952a713c4faf331 RUN npm install --include=dev @huggingface/inference RUN npm install --include=dev @huggingface/hub RUN curl -L -O https://github.com/get-convex/convex-backend/releases/download/precompiled-2024-05-07-13337fd/convex-local-backend-x86_64-unknown-linux-gnu.zip && \ unzip convex-local-backend-x86_64-unknown-linux-gnu.zip COPY ./patches/llm.ts ./convex/util/ COPY ./patches/vite.config.ts ./ COPY ./patches/constants.ts ./patches/music.ts ./convex/ COPY ./patches/characters.ts ./patches/gentle.js ./data/ COPY ./patches/PixiGame.tsx ./src/components/PixiGame.tsx COPY ./patches/PixiStaticMap.tsx ./src/components/ COPY ./patches/Button.tsx ./src/components/buttons/Button.tsx COPY ./patches/InteractButton.tsx ./src/components/buttons/InteractButton.tsx COPY ./patches/OAuthLogin.tsx ./src/components/buttons/OAuthLogin.tsx COPY ./patches/App.tsx ./src/App.tsx COPY ./patches/world.ts ./convex/world.ts COPY ./patches/PlayerDetails.tsx ./src/components/PlayerDetails.tsx COPY ./patches/hf.svg ./assets/hf.svg COPY ./patches/run.sh ./ CMD ["./run.sh"]