Saya sedang membangun beberapa gambar Docker dasar untuk organisasi saya untuk digunakan oleh tim aplikasi ketika mereka menyebarkan aplikasi mereka di OpenShift. Salah satu gambar yang harus saya buat adalah gambar NodeJS (kami ingin gambar kami bersifat internal, bukan bersumber dari DockerHub). Saya sedang membangun RHEL7 Universal Base Image (ubi) RedHat. Namun saya mengalami masalah dalam mengonfigurasi NodeJS agar berfungsi di dalam container. Ini Dockerfile saya:
FROM myimage_rhel7_base:1.0
USER root
RUN INSTALL_PKGS="rh-nodejs10 rh-nodejs10-npm rh-nodejs10-nodejs-nodemon nss_wrapper" && \
yum install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \
rpm -V $INSTALL_PKGS && \
yum clean all
USER myuser
Namun ketika saya menjalankan gambar tidak ada perintah node
atau npm
yang tersedia kecuali saya menjalankan scl enable rh-nodejs10 bash
. Ini tidak berfungsi di Dockerfile karena membuat subkulit yang tidak akan dapat digunakan oleh pengguna yang mengakses container.
Saya telah mencoba menginstal dari sumber, tetapi saya mengalami masalah lain karena perlu memutakhirkan versi gcc/g++ meskipun versi tersebut tidak tersedia di repo yang dikonfigurasi dari organisasi saya. Saya juga berpikir bahwa jika saya dapat membuat NodeJS berfungsi dari manajer paket, itu akan membantu mendapatkan patch keamanan dan paket tersebut harus diperbarui.
Pertanyaan saya, apa saja langkah-langkah yang disarankan untuk membuat image yang dapat digunakan untuk membangun aplikasi yang berjalan di NodeJS?