# syntax=docker/dockerfile:1.4 FROM rust:1.82-alpine AS wasm-builder WORKDIR /build # Installation des dépendances nécessaires pour la compilation RUN apk update && apk add --no-cache \ git \ openssh-client \ curl \ nodejs \ npm \ build-base \ pkgconfig \ clang \ llvm \ musl-dev \ nginx # Installation de wasm-pack RUN curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh # Configuration SSH basique RUN mkdir -p /root/.ssh && \ ssh-keyscan git.4nkweb.com >> /root/.ssh/known_hosts # On se place dans le bon répertoire parent WORKDIR /build # Copie du projet ihm_client COPY . ihm_client/ # Clonage du sdk_client au même niveau que ihm_client en utilisant la clé SSH montée RUN --mount=type=ssh git clone -b cicd ssh://git@git.4nkweb.com/4nk/sdk_client.git # Build du WebAssembly avec accès SSH pour les dépendances WORKDIR /build/sdk_client RUN --mount=type=ssh wasm-pack build --out-dir ../ihm_client/pkg --target bundler --dev FROM node:20-alpine WORKDIR /app # Installation des dépendances nécessaires RUN apk update && apk add --no-cache git nginx # Copie des fichiers du projet COPY --from=wasm-builder /build/ihm_client/pkg ./pkg COPY . . # Installation des dépendances Node.js RUN npm install # Copie de la configuration nginx COPY nginx.dev.conf /etc/nginx/http.d/default.conf # Script de démarrage COPY start-dev.sh /start-dev.sh RUN chmod +x /start-dev.sh EXPOSE 3003 80 CMD ["/start-dev.sh"]