Thanks, Gavin! That is a huge help.

On Sat, Sep 17, 2022 at 7:49 PM Gavin Ray <ray.gavi...@gmail.com> wrote:

> (I omitted the part where you'd need to run the "apt-get install nginx"
> above in last, single-file Docker build, whoops)
>
> That would of course go after the "COPY --from=ui-build" and before the
> CMD/ENTRYPOINT 👍
>
> On Sat, Sep 17, 2022 at 9:46 PM Gavin Ray <ray.gavi...@gmail.com> wrote:
>
>> Hey Andy,
>>
>> Happy to be useful in some way, I have a fair amount of experience here.
>>
>> Since you already have a Dockerfile next to this one that is building the
>> React app and serving it on NGINX:
>> "/workspaces/arrow-ballista/dev/docker/ballista-scheduler-ui.dockerfile"
>>
>> You can just copy the built assets out of it:
>>
>> ARG VERSION
>> FROM apache/arrow-ballista:$VERSION
>> COPY --from=ballista-scheduler-ui:0.8.0 /usr/share/nginx/html
>> /usr/share/nginx/html
>>
>> # TODO start nginx in background to serve the UI
>>
>> ENV RUST_LOG=info
>> ENV RUST_BACKTRACE=full
>>
>> CMD ["/scheduler", "&&", "nginx", "-g", "daemon off;"]
>>
>> That run command is probably wrong, you'd want to use a shell script that
>> does both things with ENTRYPOINT, not CMD but you get the point
>> It seems to build anyways:
>>
>> [image: image.png]
>>
>> If you want to have it in a single step, you can rewrite the Dockerfile
>> like this:
>> ARG VERSION
>>
>> FROM node:18-alpine as ui-build
>> WORKDIR /app
>> ENV PATH /app/node_modules/.bin:$PATH
>>
>> COPY package.json ./
>> COPY yarn.lock ./
>> RUN yarn
>>
>> COPY . ./
>> RUN yarn build
>>
>> FROM apache/arrow-ballista:$VERSION
>> COPY --from=ui-build /app/build /usr/share/nginx/html
>>
>> # TODO start nginx in background to serve the UI
>> ENV RUST_LOG=info
>> ENV RUST_BACKTRACE=full
>>
>> CMD ["/scheduler", "&&", "nginx", "-g", "daemon off;"]
>>
>> On Sat, Sep 17, 2022 at 4:07 PM Andy Grove <andygrov...@gmail.com> wrote:
>>
>>> The Ballista project had a scheduler UI contributed a while back [1],
>>> and I
>>> can get this working locally but am running into errors when trying to
>>> build this in a Docker image along with the Rust scheduler process. I
>>> have
>>> zero experience with node/yarn, so am wondering if anyone could spare
>>> some
>>> time to help point me in the right direction.
>>>
>>> I have a PR up with a comment where I am stuck. [2]
>>>
>>> Thanks,
>>>
>>> Andy.
>>>
>>> [1]
>>>
>>> https://github.com/apache/arrow-ballista/commit/372ba5fadf3c6c645b98185589996c849e42aac5
>>> [2] https://github.com/apache/arrow-ballista/pull/238
>>>
>>

Reply via email to