[
https://issues.apache.org/jira/browse/HADOOP-19209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17879712#comment-17879712
]
ASF GitHub Bot commented on HADOOP-19209:
-----------------------------------------
smengcl commented on code in PR #6910:
URL: https://github.com/apache/hadoop/pull/6910#discussion_r1746260665
##########
Dockerfile:
##########
@@ -14,33 +14,86 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM centos
-RUN rpm -Uvh
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-RUN yum install -y sudo python2-pip wget nmap-ncat jq java-11-openjdk
-RUN pip install robotframework
-RUN wget -O /usr/local/bin/dumb-init
https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64
-RUN chmod +x /usr/local/bin/dumb-init
-RUN mkdir -p /etc/security/keytabs && chmod -R a+wr /etc/security/keytabs
-ADD
https://repo.maven.apache.org/maven2/org/jboss/byteman/byteman/4.0.4/byteman-4.0.4.jar
/opt/byteman.jar
-RUN chmod o+r /opt/byteman.jar
-RUN mkdir -p /opt/profiler && \
- cd /opt/profiler && \
- curl -L
https://github.com/jvm-profiling-tools/async-profiler/releases/download/v1.5/async-profiler-1.5-linux-x64.tar.gz
| tar xvz
-ENV JAVA_HOME=/usr/lib/jvm/jre/
-ENV PATH $PATH:/opt/hadoop/bin
-
-RUN groupadd --gid 1000 hadoop
-RUN useradd --uid 1000 hadoop --gid 100 --home /opt/hadoop
-RUN chmod 755 /opt/hadoop
-RUN echo "hadoop ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
-RUN chown hadoop /opt
-ADD scripts /opt/
-ADD scripts/krb5.conf /etc/
-RUN yum install -y krb5-workstation
-RUN mkdir -p /etc/hadoop && mkdir -p /var/log/hadoop && chmod 1777 /etc/hadoop
&& chmod 1777 /var/log/hadoop
-ENV HADOOP_LOG_DIR=/var/log/hadoop
+ARG JAVA_VERSION=11
+
+# Ubuntu 22.04 LTS
+FROM eclipse-temurin:${JAVA_VERSION}-jammy
+
+RUN apt update -q \
+ && DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends \
+ jq \
+ krb5-user \
+ ncat \
+ python3-pip \
+ python-is-python3 \
+ sudo \
+ && apt clean
+
+# Robot Framework for testing
+RUN pip install robotframework \
+ && rm -fr ~/.cache/pip
+
+#dumb init for proper init handling
+RUN set -eux; \
+ ARCH="$(arch)"; \
+ v=1.2.5 ; \
+
url="https://github.com/Yelp/dumb-init/releases/download/v${v}/dumb-init_${v}_${ARCH}";
\
+ case "${ARCH}" in \
+ x86_64) \
+
sha256='e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df'; \
+ ;; \
+ aarch64) \
Review Comment:
@ayushtkn Yup `aarch64` alone should do it here for the `Dockerfile`,
because `arch` command returns `aarch64` on Linux (inside a Docker Desktop VM
on macOS).
It is true that `arch` command on macOS (M1 or later) gives `arm64`, but I
don't see a case where `Dockerfile` would be run **natively** under macOS,
which differs from #6962 . So I don't think that is a problem here.
On a sidenote, `MACHTYPE` env variable is not a reliable way to give the
**current** system architecture because for instance `zsh` always gives the
compile-time system arch: https://apple.stackexchange.com/a/467854 . And this
is happening to the `zsh` shipped in latest macOS builds for M1 and later
(presumably because it was cross-compiled on a `x86_64` box):
```bash
$ uname -mp
arm64 arm
$ echo $0
-zsh
$ echo $MACHTYPE
x86_64
```
while built-in `bash` behaves differently and gives the intended result.
This should prove the point that `MACHTYPE` env variable (alone) is not
reliable.
> Update and optimize hadoop-runner
> ---------------------------------
>
> Key: HADOOP-19209
> URL: https://issues.apache.org/jira/browse/HADOOP-19209
> Project: Hadoop Common
> Issue Type: Improvement
> Reporter: Attila Doroszlai
> Assignee: Attila Doroszlai
> Priority: Major
> Labels: pull-request-available
>
> {{hadoop-runner:latest}} is 5 years old and could use some improvements.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]