This is an automated email from the ASF dual-hosted git repository.

chenhang pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-2.8 by this push:
     new 78a155b  fix pulsar_standalone docker image build failed (#11862)
78a155b is described below

commit 78a155b37eeb8c2877d6d25cfb90b7d94083fd2d
Author: Hang Chen <[email protected]>
AuthorDate: Tue Aug 31 19:04:19 2021 +0800

    fix pulsar_standalone docker image build failed (#11862)
    
    ### Motivation
    When build the pulsar-standalone docker image, it throw the following 
exception
    
    [INFO] + sudo -u postgres /usr/lib/postgresql/11/bin/initdb /data/
    [INFO]
    [INFO] sudo: /usr/lib/postgresql/11/bin/initdb: command not found
    [INFO]
    [ERROR] The command '/bin/sh -c /pulsar/django/init-postgres.sh' returned a 
non-zero code: 1
    [WARNING] An attempt failed, will retry 1 more times
    org.apache.maven.plugin.MojoExecutionException: Could not build image
        at com.spotify.plugin.dockerfile.BuildMojo.buildImage 
(BuildMojo.java:247)
        at com.spotify.plugin.dockerfile.BuildMojo.execute (BuildMojo.java:135)
        at com.spotify.plugin.dockerfile.AbstractDockerMojo.tryExecute 
(AbstractDockerMojo.java:265)
        at com.spotify.plugin.dockerfile.AbstractDockerMojo.execute 
(AbstractDockerMojo.java:254)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
(DefaultBuildPluginManager.java:137)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:210)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:156)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:148)
        at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:117)
        at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:81)
        at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
 (SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
        at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke (Method.java:498)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:282)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:225)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:406)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:347)
    The root cause is when we use ubuntu 20.04 use base docker image instead of 
openjdk:11-jdk image introduce by #11026 , the ubuntu 20.04 will install 
postgresql 12 instead of postgresql 11 by default. However, the init and start 
script has been hard code with postgresql 11 install path, which will lead to 
command not found exception.
    
    ### Modification
    1. add postgresql 11 resource address for ubuntu 20.04 and install 
postgresql 11
---
 docker/pulsar-standalone/Dockerfile | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/docker/pulsar-standalone/Dockerfile 
b/docker/pulsar-standalone/Dockerfile
index cabbb7d..600f747 100644
--- a/docker/pulsar-standalone/Dockerfile
+++ b/docker/pulsar-standalone/Dockerfile
@@ -28,16 +28,20 @@ FROM ubuntu:20.04
 
 ARG DEBIAN_FRONTEND=noninteractive
 
+RUN apt-get update \
+    && apt-get -y install wget gnupg && wget --quiet -O - 
https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
+RUN bash -c "echo deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main 
>> /etc/apt/sources.list.d/pgdg.list"
+
 # Note that the libpq-dev package is needed here in order to install
 # the required python psycopg2 package (for postgresql) later
 RUN apt-get update \
-    && apt-get -y install openjdk-11-jdk-headless python3 python3-dev 
python3-pip postgresql sudo nginx supervisor libpq-dev
+    && apt-get -y install openjdk-11-jdk-headless python3 python3-dev 
python3-pip postgresql-11 sudo nginx supervisor libpq-dev
 
 RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10
 RUN update-ca-certificates
 
 # Postgres configuration
-COPY --from=dashboard /etc/postgresql/11/main/postgresql.conf 
/etc/postgresql/12/main/postgresql.conf
+COPY --from=dashboard /etc/postgresql/11/main/postgresql.conf 
/etc/postgresql/11/main/postgresql.conf
 
 # Configure supervisor
 COPY --from=dashboard /etc/supervisor/conf.d/supervisor-app.conf 
/etc/supervisor/conf.d/supervisor-app.conf

Reply via email to