حل مشکل bash: syntax error: unexpected end of file در زمان اجرای بیلد داکر

mohsen1 سال قبل1 سال قبل
ارسال شده در
mohsen

در زمان بیلد داکرفایل localai دستور زیر با خطا مواجه شد:

      RUN <<EOT bash
    if [ "${CMAKE_FROM_SOURCE}}" = "true" ]; then
        curl -L -s https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz -o cmake.tar.gz && tar xvf cmake.tar.gz && cd cmake-${CMAKE_VERSION} && ./configure && make && make install
    else
        apt-get update && \
        apt-get install -y \
            cmake && \
        apt-get clean && \
        rm -rf /var/lib/apt/lists/*
    fi
EOT
    

خطا به صورت زیر بود:

      0.539 bash: line 10: syntax error: unexpected end of file
------
failed to solve: process "/bin/sh -c <<EOT bash\n    if [ \"${CMAKE_FROM_SOURCE}}\" = \"true\" ]; then\r\n        curl -L -s https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz -o cmake.tar.gz && tar xvf cmake.tar.gz && cd cmake-${CMAKE_VERSION} && ./configure && make && make install\r\n    else\r\n        apt-get update && \\\r\n        apt-get install -y \\\r\n            cmake && \\\r\n        apt-get clean && \\\r\n        rm -rf /var/lib/apt/lists/*\r\n    fi\r\nEOT" did not complete successfully: exit code: 2
    

راه حل مشکل unexpected end of file. جایگزینی کاراکترهای (\r\n) CRLF ها به (\n) LF است. برای این کار در notepad++ باید در حال جستجوی Extended کاراکتر های مورد نظر را به صورت زیر جایگزین کنیم:

      Find what: \r\n
Replace with: \n
    

در ویندوز کاراکتر پایان خط CRLF است در حالی که در لینوکس تنها کاراکتر LF مورد استفاده قرار میگیرد.

رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!