Skip to content
Snippets Groups Projects
Dockerfile.server 1.24 KiB
Newer Older
JIHONG MIN's avatar
JIHONG MIN committed
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"]