costajohnathan opened a new issue, #8504:
URL: https://github.com/apache/incubator-devlake/issues/8504
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
## What and why to refactor
What are you trying to refactor? Why should it be refactored now?
Updating the base Dockerfiles for:
- devlake/backend
- devlake-config-ui
- devlake/grafana
On OpenShift, pod security constraints forbid containers to switch away from
arbitrary UIDs unless the group is
root (GID 0). Our current images:
```
FROM apache/devlake:v1.0.2
USER root
RUN chgrp -R 0 /app && \
chmod -R g=u /app
USER devlake
```
```
FROM apache/devlake-config-ui:v1.0.2
USER root
RUN chgrp -R 0 /etc/nginx /var/log/nginx /usr/share/nginx /run && \
chmod -R g=u /etc/nginx /var/log/nginx /usr/share/nginx /run
USER 101
```
— while functionally correct — will be blocked by “MustRunAsNonRoot”
policies on clusters that enforce GID 0 ownership for writable volumes. We need
all processes (running under a random UID) to belong to GID 0 and have group‑rw
permissions on the directories they must write to.
## Describe the solution you'd like
How to refactor?
1. Switch to a non‑root base user
Make sure USER devlake is the default at the end of the Dockerfile.
2. Set group ownership to root (0)
For every directory the app writes to (e.g. /app, /config, /data, etc.), add:
```
Copy
Edit
USER root
RUN chgrp -R 0 /app /config /data \
&& chmod -R g=u /app /config /data
USER devlake
```
This aligns exactly with the [OpenShift Container Platform
guidelines](https://docs.openshift.com/container-platform/4.5/openshift_images/create-images.html#images-create-guide-openshift_create-images).
3. Update documentation
Mention that these builds are now fully compatible with OpenShift’s
restricted SCC.
## Related issues
N/A
## Additional context
N/A
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]