-
Notifications
You must be signed in to change notification settings - Fork 35
Use a docker registry for cache #283
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
base: main
Are you sure you want to change the base?
Conversation
211b26f
to
c0902e4
Compare
53e57e2
to
91c5947
Compare
Is there a simple way to get sudo back? I need it quiet often |
23573a0
to
334ab81
Compare
done |
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.
👍🏼
b408ca5
to
19efd5e
Compare
Hello, Thanks for this PR! I tested it on jolicode/qotd#62 and
|
Who push the cache ? It is highly recommendend that cache is push by the CI, version of docker / config from where the cache is pushed need to be controled as special configuration or version may make him unshareable. For the CI also i see this Did you make sur that GHA has correct permissions to read this package ? EDIT : In your case it miss the |
9755e6f
to
323250c
Compare
2964de5
to
064d0db
Compare
|
||
RUN phpenmod app-default \ | ||
&& phpenmod app-fpm | ||
|
||
EXPOSE 80 | ||
|
||
CMD ["runsvdir", "-P", "/etc/service"] | ||
CMD ["runsvdir", "-P", "/var/www/infrastructure/docker/services/php/frontend/etc/service"] |
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.
hmm, this is not handy.
I have 2 symfony apps. But I want to use the vary same image php
.
So i used:
pro:
build:
context: services/php
target: web
back:
build:
context: services/php
target: web
But since the volume is mounted on both applications, there is a conflict:
root@ab4e7cad923e:/var/www# runsvdir -P /var/www/infrastructure/docker/services/php/web/etc/service
runsv php-fpm: fatal: unable to lock supervise/lock: temporary failure
runsv nginx: fatal: unable to lock supervise/lock: temporary failure
IMHO, we should NOT share container state with the host.
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.
I fixed like that for now
--- a/infrastructure/docker/services/php/Dockerfile
+++ b/infrastructure/docker/services/php/Dockerfile
@@ -83,6 +83,9 @@ RUN useradd -s /bin/false nginx
COPY web/php-configuration /etc/php/${PHP_VERSION}
COPY web/etc/nginx/. /etc/nginx/
+RUN rm -rf /etc/service/
+COPY web/etc/service/. /etc/service/
+RUN chmod 777 /etc/service/*/supervise/
RUN phpenmod app-default \
&& phpenmod app-fpm \
@@ -90,7 +93,7 @@ RUN phpenmod app-default \
EXPOSE 80
-CMD ["runsvdir", "-P", "/var/www/infrastructure/docker/services/php/web/etc/service"]
+CMD ["runsvdir", "-P", "/etc/service"]
FROM php-base AS worker
But I don't really like it
* Use buildx in each GitHub action workflow step | ||
|
||
```yaml | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
``` | ||
|
||
* Use the official Docker binary | ||
```yaml | ||
# Install official version of docker that correctly supports from-cache option in docker compose | ||
- name: Set up Docker | ||
uses: crazy-max/ghaction-setup-docker@v3 | ||
with: | ||
set-host: true | ||
|
||
# Docker socket path is different when using setup docker | ||
- name: Set Docker Socket Host | ||
run: echo "DOCKER_SOCKET_PATH=${DOCKER_HOST:5}" >> $GITHUB_ENV | ||
``` | ||
|
||
The second option is faster (there is no need to transfer images between buildx and local docker), but it is not | ||
officially supported by GitHub actions and may break in the future. |
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.
For the record, I tested both ways, and the second way was twice (2×) faster!
Thanks
Fix #252
WHat it does :