FROM python:3.9 WORKDIR / # 필요한 패키지 설치 RUN apt-get update && apt-get install -y wget default-jdk iputils-ping RUN pip install grpcio grpcio-tools protobuf mysql-connector-python pandas pyarrow requests # Hadoop 다운로드 및 설치 RUN wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz && \ tar -xzf hadoop-3.3.1.tar.gz -C /opt/ && \ rm hadoop-3.3.1.tar.gz # 환경 변수 설정 ENV JAVA_HOME=/usr/lib/jvm/default-java ENV HADOOP_HOME=/opt/hadoop-3.3.1 ENV PATH=$PATH:$HADOOP_HOME/bin # HDFS 설정을 추가하여 명확하게 호스트 지정 RUN mkdir -p /opt/hadoop-3.3.1/etc/hadoop/ RUN echo '<?xml version="1.0" encoding="UTF-8"?>\n\ <configuration>\n\ <property>\n\ <name>fs.defaultFS</name>\n\ <value>hdfs://boss:9000</value>\n\ </property>\n\ </configuration>' > /opt/hadoop-3.3.1/etc/hadoop/core-site.xml # 서버 코드 복사 COPY server.py / COPY lender.proto / COPY client.py / # gRPC 생성 RUN python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. lender.proto # 파티션 디렉토리 생성 RUN mkdir -p /partitions # 서버 실행 (CLASSPATH를 설정한 후 실행) CMD ["/bin/bash", "-c", "export CLASSPATH=$(hadoop classpath --glob) && python server.py"]