-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Независимый от версии EDT поиск jar-файлов для Coverage41C #60
Независимый от версии EDT поиск jar-файлов для Coverage41C #60
Conversation
WalkthroughThe pull request modifies the Dockerfile for Changes
Assessment against linked issues
Possibly related PRs
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Outside diff range and nitpick comments (1)
coverage41C/Dockerfile (1)
Line range hint
1-24
: Add documentation for the jar file discovery mechanismThe solution effectively addresses the EDT version independence requirement. Consider adding a comment block explaining:
- The purpose of the jar file discovery mechanism
- Which EDT versions are supported
- How the symbolic link strategy works
ARG DOCKER_REGISTRY_URL=library +# The following implementation discovers debug jar files dynamically, +# making it compatible with EDT 2024+ and earlier versions. +# It works by: +# 1. Finding the directory containing debug jar files in the EDT installation +# 2. Creating a symbolic link to this directory +# 3. Copying required files from the linked directory in the second stage
|
||
COPY --from=base ${EDT_PLUGINS}/com._1c.g5.v8.dt.debug.core_*.jar ${EDT_PLUGINS}/com._1c.g5.v8.dt.debug.model_*.jar /opt/1C/1CE/ | ||
COPY --from=base /opt/1C/edt_plugins/com._1c.g5.v8.dt.debug.core_*.jar /opt/1C/edt_plugins/com._1c.g5.v8.dt.debug.model_*.jar /opt/1C/1CE/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Verify successful file copy operation
The COPY command should be followed by a verification step to ensure the required files are present.
COPY --from=base /opt/1C/edt_plugins/com._1c.g5.v8.dt.debug.core_*.jar /opt/1C/edt_plugins/com._1c.g5.v8.dt.debug.model_*.jar /opt/1C/1CE/
+RUN if [ $(ls /opt/1C/1CE/com._1c.g5.v8.dt.debug.*.jar 2>/dev/null | wc -l) -ne 2 ]; then \
+ echo "Error: Failed to copy required jar files" && \
+ exit 1; \
+ fi
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
COPY --from=base /opt/1C/edt_plugins/com._1c.g5.v8.dt.debug.core_*.jar /opt/1C/edt_plugins/com._1c.g5.v8.dt.debug.model_*.jar /opt/1C/1CE/ | |
COPY --from=base /opt/1C/edt_plugins/com._1c.g5.v8.dt.debug.core_*.jar /opt/1C/edt_plugins/com._1c.g5.v8.dt.debug.model_*.jar /opt/1C/1CE/ | |
RUN if [ $(ls /opt/1C/1CE/com._1c.g5.v8.dt.debug.*.jar 2>/dev/null | wc -l) -ne 2 ]; then \ | |
echo "Error: Failed to copy required jar files" && \ | |
exit 1; \ | |
fi |
RUN ln -s $(find /opt/1C -name "com._1c.g5.v8.dt.debug.*.jar" -printf '%h\n'| sort -u) /opt/1C/edt_plugins | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add error handling to the symbolic link creation
The current implementation might fail silently in edge cases. Consider making it more robust:
-RUN ln -s $(find /opt/1C -name "com._1c.g5.v8.dt.debug.*.jar" -printf '%h\n'| sort -u) /opt/1C/edt_plugins
+RUN PLUGIN_DIR=$(find /opt/1C -name "com._1c.g5.v8.dt.debug.*.jar" -printf '%h\n' | sort -u) && \
+ if [ $(echo "$PLUGIN_DIR" | wc -l) -ne 1 ]; then \
+ echo "Error: Expected exactly one plugin directory, found:" && \
+ echo "$PLUGIN_DIR" && \
+ exit 1; \
+ fi && \
+ if [ ! -f "$PLUGIN_DIR/com._1c.g5.v8.dt.debug.core_"*.jar ] || \
+ [ ! -f "$PLUGIN_DIR/com._1c.g5.v8.dt.debug.model_"*.jar ]; then \
+ echo "Error: Required jar files not found in $PLUGIN_DIR" && \
+ exit 1; \
+ fi && \
+ rm -f /opt/1C/edt_plugins && \
+ ln -s "$PLUGIN_DIR" /opt/1C/edt_plugins
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
RUN ln -s $(find /opt/1C -name "com._1c.g5.v8.dt.debug.*.jar" -printf '%h\n'| sort -u) /opt/1C/edt_plugins | |
RUN PLUGIN_DIR=$(find /opt/1C -name "com._1c.g5.v8.dt.debug.*.jar" -printf '%h\n' | sort -u) && \ | |
if [ $(echo "$PLUGIN_DIR" | wc -l) -ne 1 ]; then \ | |
echo "Error: Expected exactly one plugin directory, found:" && \ | |
echo "$PLUGIN_DIR" && \ | |
exit 1; \ | |
fi && \ | |
if [ ! -f "$PLUGIN_DIR/com._1c.g5.v8.dt.debug.core_"*.jar ] || \ | |
[ ! -f "$PLUGIN_DIR/com._1c.g5.v8.dt.debug.model_"*.jar ]; then \ | |
echo "Error: Required jar files not found in $PLUGIN_DIR" && \ | |
exit 1; \ | |
fi && \ | |
rm -f /opt/1C/edt_plugins && \ | |
ln -s "$PLUGIN_DIR" /opt/1C/edt_plugins |
А скрипты не надо обновить? |
fee08b4
into
firstBitMarksistskaya:feature/first-bit
Сделал так, что вместо использования ARG в базовом образе (EDT) выполняется поиск каталога с jar-файлами, на этот каталог формируется симлинк.
На втором стейдже файлы копируются из каталога, на который ведет симлинк.
closes #59
Summary by CodeRabbit
EDT_PLUGINS
argument and implemented a symbolic link for better directory referencing.