YouTube-operational-API
YouTube-operational-API copied to clipboard
Create docker image
This project is great! I'd love to have an image I could download from Docker Hub. That way, I could manage Docker images without constantly checking versions.
Hello, just to make sure (I'm not a regular Docker user):
You are aware of:
- blob/6750e3dfc0e3871196f561db935a3576bf6640de/README.md#run-the-api-with-docker
- blob/6750e3dfc0e3871196f561db935a3576bf6640de/Dockerfile
?
I already pushed once https://hub.docker.com/r/benjaminloison/youtube-operational-api, but it needs to be pushed again after each version/commit, right?
By the way do you know an open-source alternative to https://hub.docker.com? As far as I know this server instance is not open-source. Related to #337/files#r2299314980.
Related to #33.
You can share your own image in Docker Hub. I think we need to automate it with CI/CD.
The README is also mentioned yes, but since the project is actively developing, I have to constantly get updates with git. This can be overwhelming
In addition, the image in Docker Hub was updated 1 year ago, it needs to be updated with every commit. This is where CI/CD can come in handy
Would you mind opening a pull request with such GitHub Actions CI/CD?
Of course! I'll open it when I'm available
Just a disclaimer I don't know how Docker internally work and I do not like Docker much (I may be wrong), but I am totally fine helping you using Docker if you would like to.
Personal notes (I do not expect an answer from your end, but if you have insights I am fine hearing them):
Do you know how to avoid making a Docker image of Size 170.6 MB for each release? Related to #338.
I feel quite bad that at each commit would have such a huge blob, that's maybe why we define versions/releases. I would expect only my code size to make the additional Docker size download compared to dependencies. Well maybe dependencies are well managed, so let us not consider that or we will end up facing some free limits I guess.
Absolutely not! This image size is available in Docker regardless of the repo.
In other words, nothing is added to the github code, there is no problem You can look at my fork project, there's an example there https://github.com/Andromeda606/YouTube-operational-API
On the other hand, fitting an operating system into 170 MB is pretty good (compressed version)
Related to #220.
This project is great! I'd love to have an image I could download from Docker Hub. That way, I could manage Docker images without constantly checking versions.
Sorry to reconsider this only now, but I am currently wondering why are we considering building images and putting them online on closed-source Docker Hub, as in terms of download complexity it seems pretty identical and in terms of compilation as mentioned in pull/337#discussion_r2312074385 we are talking about 20 (25.573s - 6.048s) seconds on my free Oracle Cloud VPS ARM and there is no dependency hell to manage depending on the host OS as without Docker (so the compilation is quite not even noticed by the end-user), then I don't find the point of publishing Docker images here, even for updates, as it takes 2.5 seconds which is faster than redownloading a full image as far as I understand which takes 6 seconds as mentioned.
What would ideally be your flow to update your Docker images? What do you do currently to update them?
Sorry again, I am picky, open-minded, but need to be convinced of what I am doing to do it.
Personal notes:
git diff
Output:
diff --git a/index.php b/index.php
index d9ff399..6e91eef 100644
--- a/index.php
+++ b/index.php
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
- <title>YouTube operational API</title>
+ <title>YouTube operational API test</title>
<style>
body {
max-width: 73%;
time docker build .
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Sending build context to Docker daemon 207.9kB
Step 1/14 : FROM php:apache AS builder
---> 40286d9b5483
Step 2/14 : RUN apt-get update && apt-get install -y git protobuf-compiler
---> Using cache
---> 8d5dd3230482
Step 3/14 : COPY --from=composer/composer:latest-bin /composer /usr/bin/composer
---> Using cache
---> 3054393b4bce
Step 4/14 : COPY . /app
---> 950784e8fe96
Step 5/14 : WORKDIR /app
---> Running in be22b5c6b4b4
---> Removed intermediate container be22b5c6b4b4
---> b09ddbc3e252
Step 6/14 : RUN composer require google/protobuf && protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f)
---> Running in 0eeedb708834
./composer.json has been created
Running composer update google/protobuf
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking google/protobuf (v4.32.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
Failed to download google/protobuf from dist: The zip extension and unzip/7z commands are both missing, skipping.
Your command-line PHP is using multiple ini files. Run `php --ini` to show them.
Now trying to download from source
- Syncing google/protobuf (v4.32.0) into cache
- Installing google/protobuf (v4.32.0): Cloning 9a9a92ecbe from cache
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
No security vulnerability advisories found.
Using version ^4.32 for google/protobuf
---> Removed intermediate container 0eeedb708834
---> 74b99228837d
Step 7/14 : FROM php:apache
---> 40286d9b5483
Step 8/14 : RUN a2enmod rewrite
---> Using cache
---> 3aea4373b748
Step 9/14 : COPY --from=builder /app /var/www/html/
---> 22c760efa12a
Step 10/14 : RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /etc/apache2/apache2.conf
---> Running in 82c6d21938ec
---> Removed intermediate container 82c6d21938ec
---> b802d078c09e
Step 11/14 : ARG VERSION
---> Running in b6109525ecb3
---> Removed intermediate container b6109525ecb3
---> 2aa2fb18b78b
Step 12/14 : ENV VERSION=$VERSION
---> Running in 76fd3f583ff2
---> Removed intermediate container 76fd3f583ff2
---> ab8fc852accb
Step 13/14 : EXPOSE 80
---> Running in a2a56aaca2cc
---> Removed intermediate container a2a56aaca2cc
---> a8ef1a6d1e0c
Step 14/14 : ENTRYPOINT ["apachectl", "-D", "FOREGROUND"]
---> Running in 313d961da78f
---> Removed intermediate container 313d961da78f
---> 09793dad9d6f
Successfully built 09793dad9d6f
real 0m2.487s
user 0m0.014s
sys 0m0.009s
Related to Benjamin_Loison/moby/issues/17.
If no change:
time docker build .
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Sending build context to Docker daemon 207.9kB
Step 1/14 : FROM php:apache AS builder
---> 40286d9b5483
Step 2/14 : RUN apt-get update && apt-get install -y git protobuf-compiler
---> Using cache
---> 8d5dd3230482
Step 3/14 : COPY --from=composer/composer:latest-bin /composer /usr/bin/composer
---> Using cache
---> 3054393b4bce
Step 4/14 : COPY . /app
---> Using cache
---> 950784e8fe96
Step 5/14 : WORKDIR /app
---> Using cache
---> b09ddbc3e252
Step 6/14 : RUN composer require google/protobuf && protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f)
---> Using cache
---> 74b99228837d
Step 7/14 : FROM php:apache
---> 40286d9b5483
Step 8/14 : RUN a2enmod rewrite
---> Using cache
---> 3aea4373b748
Step 9/14 : COPY --from=builder /app /var/www/html/
---> Using cache
---> 22c760efa12a
Step 10/14 : RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /etc/apache2/apache2.conf
---> Using cache
---> b802d078c09e
Step 11/14 : ARG VERSION
---> Using cache
---> 2aa2fb18b78b
Step 12/14 : ENV VERSION=$VERSION
---> Using cache
---> ab8fc852accb
Step 13/14 : EXPOSE 80
---> Using cache
---> a8ef1a6d1e0c
Step 14/14 : ENTRYPOINT ["apachectl", "-D", "FOREGROUND"]
---> Using cache
---> 09793dad9d6f
Successfully built 09793dad9d6f
real 0m0.072s
user 0m0.010s
sys 0m0.010s
Just think, you downloaded this project using git and are running it on your server. What happens when you update it? Do I have to git pull and update it again?
Instead of checking whether you've updated your library with all this work, all I have to do is type docker run. It will download your latest update and I can use it easily.
It is definitely an easier solution for other users
In short, the point isn't actually to create Docker images, but to push and manage them. You can choose an alternative other than Docker Hub, but it's the most well-known
Think of it like using apt. When I type apt install firefox, I can easily download the latest version of firefox. I no longer need to check the version of firefox
When running firefox it runs last apt installed version of Firefox, same for docker run youtube_operational_api (built with the following command), so if you want to potentially install/update and run YouTube operational API with Docker, then buildx build --tag youtube_operational_api github.com/Benjamin-Loison/YouTube-operational-API && docker run -p 8080:80 youtube_operational_api should meet your needs without being too cumbersome in my opinion (it should be docker run -p 8080:80 github.com/Benjamin-Loison/YouTube-operational-API, but they try to promote Docker Hub to make money I guess, maybe there is a fork adding this feature or you can create your own wrapper), quite as similarly as sudo apt update && sudo apt upgrade -y firefox && ./firefox .
Personal notes:
docker build --help
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Usage: docker build [OPTIONS] PATH | URL | -
Build an image from a Dockerfile
Aliases:
docker image build, docker build, docker builder build
Options:
--add-host list Add a custom host-to-IP mapping ("host:ip")
--build-arg list Set build-time variables
--cache-from strings Images to consider as cache sources
--cgroup-parent string Set the parent cgroup for the "RUN" instructions during build
--compress Compress the build context using gzip
--cpu-period int Limit the CPU CFS (Completely Fair Scheduler) period
--cpu-quota int Limit the CPU CFS (Completely Fair Scheduler) quota
-c, --cpu-shares int CPU shares (relative weight)
--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
--disable-content-trust Skip image verification (default true)
-f, --file string Name of the Dockerfile (Default is "PATH/Dockerfile")
--force-rm Always remove intermediate containers
--iidfile string Write the image ID to the file
--isolation string Container isolation technology
--label list Set metadata for an image
-m, --memory bytes Memory limit
--memory-swap bytes Swap limit equal to memory plus swap: -1 to enable unlimited swap
--network string Set the networking mode for the RUN instructions during build (default "default")
--no-cache Do not use cache when building the image
--platform string Set platform if server is multi-platform capable
--pull Always attempt to pull a newer version of the image
-q, --quiet Suppress the build output and print image ID on success
--rm Remove intermediate containers after a successful build (default true)
--security-opt strings Security options
--shm-size bytes Size of "/dev/shm"
-t, --tag list Name and optionally a tag in the "name:tag" format
--target string Set the target build stage to build.
--ulimit ulimit Ulimit options (default [])
--pull does not experimentally helps it seems.
./buildx-v0.27.0.linux-arm64 --help
Output:
Extended build capabilities with BuildKit
Usage:
buildx-v0.27.0.linux-arm64
buildx-v0.27.0.linux-arm64 [command]
Available Commands:
bake Build from a file
build Start a build
create Create a new builder instance
dial-stdio Proxy current stdio streams to builder instance
du Disk usage
help Help about any command
history Commands to work on build records
imagetools Commands to work on images in registry
inspect Inspect current builder instance
ls List builder instances
prune Remove build cache
rm Remove one or more builder instances
stop Stop builder instance
use Set the current builder instance
version Show buildx version information
Flags:
--builder string Override the configured builder instance
-D, --debug Enable debug logging
-h, --help help for buildx-v0.27.0.linux-arm64
Use "buildx-v0.27.0.linux-arm64 [command] --help" for more information about a command.
Experimental commands and flags are hidden. Set BUILDX_EXPERIMENTAL=1 to show them.
./buildx-v0.27.0.linux-arm64 build --help
Output:
Start a build
Usage:
buildx-v0.27.0.linux-arm64 build [OPTIONS] PATH | URL | - [flags]
Aliases:
build, b
Flags:
--add-host strings Add a custom host-to-IP mapping (format: "host:ip")
--allow stringArray Allow extra privileged entitlement (e.g., "network.host", "security.insecure")
--annotation stringArray Add annotation to the image
--attest stringArray Attestation parameters (format: "type=sbom,generator=image")
--build-arg stringArray Set build-time variables
--build-context stringArray Additional build contexts (e.g., name=path)
--cache-from stringArray External cache sources (e.g., "user/app:cache", "type=local,src=path/to/dir")
--cache-to stringArray Cache export destinations (e.g., "user/app:cache", "type=local,dest=path/to/dir")
--call string Set method for evaluating build ("check", "outline", "targets") (default "build")
--cgroup-parent string Set the parent cgroup for the "RUN" instructions during build
--check Shorthand for "--call=check" (default )
-f, --file string Name of the Dockerfile (default: "PATH/Dockerfile")
-h, --help help for build
--iidfile string Write the image ID to a file
--label stringArray Set metadata for an image
--load Shorthand for "--output=type=docker"
--metadata-file string Write build result metadata to a file
--network string Set the networking mode for the "RUN" instructions during build (default "default")
--no-cache Do not use cache when building the image
--no-cache-filter stringArray Do not cache specified stages
-o, --output stringArray Output destination (format: "type=local,dest=path")
--platform stringArray Set target platform for build
--progress string Set type of progress output ("auto", "quiet", "plain", "tty", "rawjson"). Use plain to show container output (default "auto")
--provenance string Shorthand for "--attest=type=provenance"
--pull Always attempt to pull all referenced images
--push Shorthand for "--output=type=registry"
-q, --quiet Suppress the build output and print image ID on success
--sbom string Shorthand for "--attest=type=sbom"
--secret stringArray Secret to expose to the build (format: "id=mysecret[,src=/local/secret]")
--shm-size bytes Shared memory size for build containers
--ssh stringArray SSH agent socket or keys to expose to the build (format: "default|<id>[=<socket>|<key>[,<key>]]")
-t, --tag stringArray Name and optionally a tag (format: "name:tag")
--target string Set the target build stage to build
--ulimit ulimit Ulimit options (default [])
Global Flags:
--builder string Override the configured builder instance
-D, --debug Enable debug logging
Experimental commands and flags are hidden. Set BUILDX_EXPERIMENTAL=1 to show them.
docker build --tag 'YouTube operational API' .
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
invalid argument "YouTube operational API" for "-t, --tag" flag: invalid reference format: repository name (library/YouTube operational API) must be lowercase
See 'docker build --help'.
docker build --tag 'youtube operational api' .
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
invalid argument "youtube operational api" for "-t, --tag" flag: invalid reference format
See 'docker build --help'.
docker build --tag "youtube operational api:`git rev-parse --short HEAD`" .
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
invalid argument "youtube operational api:1ef5021" for "-t, --tag" flag: invalid reference format
See 'docker build --help'.
docker build --tag youtube_operational_api .
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Sending build context to Docker daemon 65.42MB
Step 1/14 : FROM php:apache AS builder
---> 40286d9b5483
Step 2/14 : RUN apt-get update && apt-get install -y git protobuf-compiler
---> Using cache
---> 45f216865bb7
Step 3/14 : COPY --from=composer/composer:latest-bin /composer /usr/bin/composer
---> Using cache
---> ce0a5bbe2a4c
Step 4/14 : COPY . /app
---> Using cache
---> d078c0c82b20
Step 5/14 : WORKDIR /app
---> Using cache
---> 0dd9d7e3f177
Step 6/14 : RUN composer require google/protobuf && protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f)
---> Using cache
---> f69c5707f847
Step 7/14 : FROM php:apache
---> 40286d9b5483
Step 8/14 : RUN a2enmod rewrite
---> Using cache
---> b27d72bca464
Step 9/14 : COPY --from=builder /app /var/www/html/
---> Using cache
---> 1c2351dcd548
Step 10/14 : RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /etc/apache2/apache2.conf
---> Using cache
---> a09d2df46f81
Step 11/14 : ARG VERSION
---> Using cache
---> 69e84ee5cea5
Step 12/14 : ENV VERSION=$VERSION
---> Using cache
---> 26cbc7eb84f4
Step 13/14 : EXPOSE 80
---> Using cache
---> 3e7a5ca2ea81
Step 14/14 : ENTRYPOINT ["apachectl", "-D", "FOREGROUND"]
---> Using cache
---> d13045f51342
Successfully built d13045f51342
Successfully tagged youtube_operational_api:latest
docker image ls
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
youtube_operational_api latest 10f07326a38a 6 seconds ago 591MB
<none> <none> a4259b5c61db 8 seconds ago 684MB
php apache 40286d9b5483 2 days ago 525MB
composer/composer latest-bin ba42955de964 9 days ago 3.12MB
latest could be understood locally.
docker build --tag "youtube_operational_api:`git rev-parse --short HEAD`" .
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Sending build context to Docker daemon 65.42MB
Step 1/14 : FROM php:apache AS builder
apache: Pulling from library/php
9a6263cdeaa5: Already exists
ef1ee6d029e6: Already exists
a472e922e809: Already exists
48fe053e93cb: Already exists
fc43ae40cfaf: Already exists
68c0c909ee69: Already exists
a5af3640212f: Already exists
d1daf55e39b8: Already exists
0aa06473af9f: Already exists
b009c6bfbc2e: Already exists
d7b879e84d79: Already exists
ce23f515033b: Already exists
7b848ff217f1: Already exists
a341f2f20c41: Already exists
4f4fb700ef54: Already exists
Digest: sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2
Status: Downloaded newer image for php:apache
---> 40286d9b5483
Step 2/14 : RUN apt-get update && apt-get install -y git protobuf-compiler
---> Running in e064459026f3
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.1 kB]
Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
Get:4 http://deb.debian.org/debian trixie/main arm64 Packages [9604 kB]
Get:5 http://deb.debian.org/debian trixie-updates/main arm64 Packages [2432 B]
Get:6 http://deb.debian.org/debian-security trixie-security/main arm64 Packages [33.6 kB]
Fetched 9730 kB in 1s (9154 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
git-man less libcbor0.10 libcurl3t64-gnutls libedit2 liberror-perl
libfido2-1 libngtcp2-16 libngtcp2-crypto-gnutls8 libprotobuf-dev
libprotobuf-lite32t64 libprotobuf32t64 libprotoc32t64 libx11-6 libx11-data
libxau6 libxcb1 libxdmcp6 libxext6 libxmuu1 openssh-client xauth zlib1g-dev
Suggested packages:
gettext-base git-doc git-email git-gui gitk gitweb git-cvs git-mediawiki
git-svn keychain libpam-ssh monkeysphere ssh-askpass protobuf-mode-el
The following NEW packages will be installed:
git git-man less libcbor0.10 libcurl3t64-gnutls libedit2 liberror-perl
libfido2-1 libngtcp2-16 libngtcp2-crypto-gnutls8 libprotobuf-dev
libprotobuf-lite32t64 libprotobuf32t64 libprotoc32t64 libx11-6 libx11-data
libxau6 libxcb1 libxdmcp6 libxext6 libxmuu1 openssh-client protobuf-compiler
xauth zlib1g-dev
0 upgraded, 25 newly installed, 0 to remove and 1 not upgraded.
Need to get 18.3 MB of archives.
After this operation, 87.4 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian trixie/main arm64 less arm64 668-1 [156 kB]
Get:2 http://deb.debian.org/debian trixie/main arm64 libedit2 arm64 3.1-20250104-1 [89.3 kB]
Get:3 http://deb.debian.org/debian trixie/main arm64 libcbor0.10 arm64 0.10.2-2 [27.4 kB]
Get:4 http://deb.debian.org/debian trixie/main arm64 libfido2-1 arm64 1.15.0-1+b1 [74.3 kB]
Get:5 http://deb.debian.org/debian trixie/main arm64 openssh-client arm64 1:10.0p1-7 [925 kB]
Get:6 http://deb.debian.org/debian trixie/main arm64 libngtcp2-16 arm64 1.11.0-1 [121 kB]
Get:7 http://deb.debian.org/debian trixie/main arm64 libngtcp2-crypto-gnutls8 arm64 1.11.0-1 [28.2 kB]
Get:8 http://deb.debian.org/debian trixie/main arm64 libcurl3t64-gnutls arm64 8.14.1-2 [353 kB]
Get:9 http://deb.debian.org/debian trixie/main arm64 liberror-perl all 0.17030-1 [26.9 kB]
Get:10 http://deb.debian.org/debian trixie/main arm64 git-man all 1:2.47.2-0.2 [2205 kB]
Get:11 http://deb.debian.org/debian trixie/main arm64 git arm64 1:2.47.2-0.2 [8724 kB]
Get:12 http://deb.debian.org/debian trixie/main arm64 zlib1g-dev arm64 1:1.3.dfsg+really1.3.1-1+b1 [917 kB]
Get:13 http://deb.debian.org/debian trixie/main arm64 libprotobuf32t64 arm64 3.21.12-11 [858 kB]
Get:14 http://deb.debian.org/debian trixie/main arm64 libprotobuf-lite32t64 arm64 3.21.12-11 [250 kB]
Get:15 http://deb.debian.org/debian trixie/main arm64 libprotobuf-dev arm64 3.21.12-11 [1261 kB]
Get:16 http://deb.debian.org/debian trixie/main arm64 libprotoc32t64 arm64 3.21.12-11 [790 kB]
Get:17 http://deb.debian.org/debian trixie/main arm64 libxau6 arm64 1:1.0.11-1 [20.6 kB]
Get:18 http://deb.debian.org/debian trixie/main arm64 libxdmcp6 arm64 1:1.1.5-1 [27.8 kB]
Get:19 http://deb.debian.org/debian trixie/main arm64 libxcb1 arm64 1.17.0-2+b1 [143 kB]
Get:20 http://deb.debian.org/debian trixie/main arm64 libx11-data all 2:1.8.12-1 [343 kB]
Get:21 http://deb.debian.org/debian trixie/main arm64 libx11-6 arm64 2:1.8.12-1 [795 kB]
Get:22 http://deb.debian.org/debian trixie/main arm64 libxext6 arm64 2:1.3.4-1+b3 [49.2 kB]
Get:23 http://deb.debian.org/debian trixie/main arm64 libxmuu1 arm64 2:1.1.3-3+b4 [22.0 kB]
Get:24 http://deb.debian.org/debian trixie/main arm64 protobuf-compiler arm64 3.21.12-11 [84.7 kB]
Get:25 http://deb.debian.org/debian trixie/main arm64 xauth arm64 1:1.1.2-1.1 [35.4 kB]
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
debconf: unable to initialize frontend: Teletype
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Noninteractive
Fetched 18.3 MB in 0s (85.0 MB/s)
Selecting previously unselected package less.
(Reading database ... 15697 files and directories currently installed.)
Preparing to unpack .../00-less_668-1_arm64.deb ...
Unpacking less (668-1) ...
Selecting previously unselected package libedit2:arm64.
Preparing to unpack .../01-libedit2_3.1-20250104-1_arm64.deb ...
Unpacking libedit2:arm64 (3.1-20250104-1) ...
Selecting previously unselected package libcbor0.10:arm64.
Preparing to unpack .../02-libcbor0.10_0.10.2-2_arm64.deb ...
Unpacking libcbor0.10:arm64 (0.10.2-2) ...
Selecting previously unselected package libfido2-1:arm64.
Preparing to unpack .../03-libfido2-1_1.15.0-1+b1_arm64.deb ...
Unpacking libfido2-1:arm64 (1.15.0-1+b1) ...
Selecting previously unselected package openssh-client.
Preparing to unpack .../04-openssh-client_1%3a10.0p1-7_arm64.deb ...
Unpacking openssh-client (1:10.0p1-7) ...
Selecting previously unselected package libngtcp2-16:arm64.
Preparing to unpack .../05-libngtcp2-16_1.11.0-1_arm64.deb ...
Unpacking libngtcp2-16:arm64 (1.11.0-1) ...
Selecting previously unselected package libngtcp2-crypto-gnutls8:arm64.
Preparing to unpack .../06-libngtcp2-crypto-gnutls8_1.11.0-1_arm64.deb ...
Unpacking libngtcp2-crypto-gnutls8:arm64 (1.11.0-1) ...
Selecting previously unselected package libcurl3t64-gnutls:arm64.
Preparing to unpack .../07-libcurl3t64-gnutls_8.14.1-2_arm64.deb ...
Unpacking libcurl3t64-gnutls:arm64 (8.14.1-2) ...
Selecting previously unselected package liberror-perl.
Preparing to unpack .../08-liberror-perl_0.17030-1_all.deb ...
Unpacking liberror-perl (0.17030-1) ...
Selecting previously unselected package git-man.
Preparing to unpack .../09-git-man_1%3a2.47.2-0.2_all.deb ...
Unpacking git-man (1:2.47.2-0.2) ...
Selecting previously unselected package git.
Preparing to unpack .../10-git_1%3a2.47.2-0.2_arm64.deb ...
Unpacking git (1:2.47.2-0.2) ...
Selecting previously unselected package zlib1g-dev:arm64.
Preparing to unpack .../11-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1+b1_arm64.deb ...
Unpacking zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1+b1) ...
Selecting previously unselected package libprotobuf32t64:arm64.
Preparing to unpack .../12-libprotobuf32t64_3.21.12-11_arm64.deb ...
Unpacking libprotobuf32t64:arm64 (3.21.12-11) ...
Selecting previously unselected package libprotobuf-lite32t64:arm64.
Preparing to unpack .../13-libprotobuf-lite32t64_3.21.12-11_arm64.deb ...
Unpacking libprotobuf-lite32t64:arm64 (3.21.12-11) ...
Selecting previously unselected package libprotobuf-dev:arm64.
Preparing to unpack .../14-libprotobuf-dev_3.21.12-11_arm64.deb ...
Unpacking libprotobuf-dev:arm64 (3.21.12-11) ...
Selecting previously unselected package libprotoc32t64:arm64.
Preparing to unpack .../15-libprotoc32t64_3.21.12-11_arm64.deb ...
Unpacking libprotoc32t64:arm64 (3.21.12-11) ...
Selecting previously unselected package libxau6:arm64.
Preparing to unpack .../16-libxau6_1%3a1.0.11-1_arm64.deb ...
Unpacking libxau6:arm64 (1:1.0.11-1) ...
Selecting previously unselected package libxdmcp6:arm64.
Preparing to unpack .../17-libxdmcp6_1%3a1.1.5-1_arm64.deb ...
Unpacking libxdmcp6:arm64 (1:1.1.5-1) ...
Selecting previously unselected package libxcb1:arm64.
Preparing to unpack .../18-libxcb1_1.17.0-2+b1_arm64.deb ...
Unpacking libxcb1:arm64 (1.17.0-2+b1) ...
Selecting previously unselected package libx11-data.
Preparing to unpack .../19-libx11-data_2%3a1.8.12-1_all.deb ...
Unpacking libx11-data (2:1.8.12-1) ...
Selecting previously unselected package libx11-6:arm64.
Preparing to unpack .../20-libx11-6_2%3a1.8.12-1_arm64.deb ...
Unpacking libx11-6:arm64 (2:1.8.12-1) ...
Selecting previously unselected package libxext6:arm64.
Preparing to unpack .../21-libxext6_2%3a1.3.4-1+b3_arm64.deb ...
Unpacking libxext6:arm64 (2:1.3.4-1+b3) ...
Selecting previously unselected package libxmuu1:arm64.
Preparing to unpack .../22-libxmuu1_2%3a1.1.3-3+b4_arm64.deb ...
Unpacking libxmuu1:arm64 (2:1.1.3-3+b4) ...
Selecting previously unselected package protobuf-compiler.
Preparing to unpack .../23-protobuf-compiler_3.21.12-11_arm64.deb ...
Unpacking protobuf-compiler (3.21.12-11) ...
Selecting previously unselected package xauth.
Preparing to unpack .../24-xauth_1%3a1.1.2-1.1_arm64.deb ...
Unpacking xauth (1:1.1.2-1.1) ...
Setting up libprotobuf-lite32t64:arm64 (3.21.12-11) ...
Setting up libprotobuf32t64:arm64 (3.21.12-11) ...
Setting up libxau6:arm64 (1:1.0.11-1) ...
Setting up libxdmcp6:arm64 (1:1.1.5-1) ...
Setting up libxcb1:arm64 (1.17.0-2+b1) ...
Setting up libcbor0.10:arm64 (0.10.2-2) ...
Setting up libedit2:arm64 (3.1-20250104-1) ...
Setting up less (668-1) ...
Setting up liberror-perl (0.17030-1) ...
Setting up libx11-data (2:1.8.12-1) ...
Setting up zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1+b1) ...
Setting up git-man (1:2.47.2-0.2) ...
Setting up libx11-6:arm64 (2:1.8.12-1) ...
Setting up libngtcp2-16:arm64 (1.11.0-1) ...
Setting up libprotoc32t64:arm64 (3.21.12-11) ...
Setting up libfido2-1:arm64 (1.15.0-1+b1) ...
Setting up libxmuu1:arm64 (2:1.1.3-3+b4) ...
Setting up libngtcp2-crypto-gnutls8:arm64 (1.11.0-1) ...
Setting up protobuf-compiler (3.21.12-11) ...
Setting up openssh-client (1:10.0p1-7) ...
Setting up libcurl3t64-gnutls:arm64 (8.14.1-2) ...
Setting up libxext6:arm64 (2:1.3.4-1+b3) ...
Setting up libprotobuf-dev:arm64 (3.21.12-11) ...
Setting up git (1:2.47.2-0.2) ...
Setting up xauth (1:1.1.2-1.1) ...
Processing triggers for libc-bin (2.41-12) ...
---> Removed intermediate container e064459026f3
---> 8e33234e52ee
Step 3/14 : COPY --from=composer/composer:latest-bin /composer /usr/bin/composer
latest-bin: Pulling from composer/composer
03385178446b: Already exists
Digest: sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592
Status: Downloaded newer image for composer/composer:latest-bin
---> a35f53fe2e62
Step 4/14 : COPY . /app
---> 0ed90dcf92bf
Step 5/14 : WORKDIR /app
---> Running in a4f03e3d927a
---> Removed intermediate container a4f03e3d927a
---> 3c2512e8a3bc
Step 6/14 : RUN composer require google/protobuf && protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f)
---> Running in 1e036267bb0b
./composer.json has been created
Running composer update google/protobuf
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking google/protobuf (v4.32.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
Failed to download google/protobuf from dist: The zip extension and unzip/7z commands are both missing, skipping.
Your command-line PHP is using multiple ini files. Run `php --ini` to show them.
Now trying to download from source
- Syncing google/protobuf (v4.32.0) into cache
- Installing google/protobuf (v4.32.0): Cloning 9a9a92ecbe from cache
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
No security vulnerability advisories found.
Using version ^4.32 for google/protobuf
---> Removed intermediate container 1e036267bb0b
---> d061aa52d405
Step 7/14 : FROM php:apache
---> 40286d9b5483
Step 8/14 : RUN a2enmod rewrite
---> Running in 50ce7f5f7587
Enabling module rewrite.
To activate the new configuration, you need to run:
service apache2 restart
---> Removed intermediate container 50ce7f5f7587
---> 8c2bfe3d5735
Step 9/14 : COPY --from=builder /app /var/www/html/
---> 402ddbc3b616
Step 10/14 : RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /etc/apache2/apache2.conf
---> Running in a76c84848c67
---> Removed intermediate container a76c84848c67
---> ad8c9bd235b4
Step 11/14 : ARG VERSION
---> Running in ead8be5df6e2
---> Removed intermediate container ead8be5df6e2
---> b1ce341891f8
Step 12/14 : ENV VERSION=$VERSION
---> Running in 0b9712509462
---> Removed intermediate container 0b9712509462
---> 4d737a58cd20
Step 13/14 : EXPOSE 80
---> Running in 015e8ce9554c
---> Removed intermediate container 015e8ce9554c
---> 988ba8b290c6
Step 14/14 : ENTRYPOINT ["apachectl", "-D", "FOREGROUND"]
---> Running in 5893cacae960
---> Removed intermediate container 5893cacae960
---> 382e8e3dba4b
Successfully built 382e8e3dba4b
Successfully tagged youtube_operational_api:1ef5021
docker image ls
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
youtube_operational_api 1ef5021 382e8e3dba4b 21 seconds ago 591MB
<none> <none> d061aa52d405 23 seconds ago 684MB
php apache 40286d9b5483 2 days ago 525MB
composer/composer latest-bin ba42955de964 9 days ago 3.12MB
How to update multiple docker contains at a given point in time?
docker update
Output:
"docker update" requires at least 1 argument.
See 'docker update --help'.
Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]
Update configuration of one or more containers
docker update .
you must provide one or more flags when using this command
docker update --help
Output:
Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]
Update configuration of one or more containers
Aliases:
docker container update, docker update
Options:
--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
--cpu-period int Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-period int Limit the CPU real-time period in microseconds
--cpu-rt-runtime int Limit the CPU real-time runtime in microseconds
-c, --cpu-shares int CPU shares (relative weight)
--cpus decimal Number of CPUs
--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
-m, --memory bytes Memory limit
--memory-reservation bytes Memory soft limit
--memory-swap bytes Swap limit equal to memory plus swap: -1 to enable unlimited swap
--pids-limit int Tune container pids limit (set -1 for unlimited)
--restart string Restart policy to apply when a container exits
docker build --rm .
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Sending build context to Docker daemon 65.42MB
Step 1/14 : FROM php:apache AS builder
apache: Pulling from library/php
9a6263cdeaa5: Already exists
ef1ee6d029e6: Already exists
a472e922e809: Already exists
48fe053e93cb: Already exists
fc43ae40cfaf: Already exists
68c0c909ee69: Already exists
a5af3640212f: Already exists
d1daf55e39b8: Already exists
0aa06473af9f: Already exists
b009c6bfbc2e: Already exists
d7b879e84d79: Already exists
ce23f515033b: Already exists
7b848ff217f1: Already exists
a341f2f20c41: Already exists
4f4fb700ef54: Already exists
Digest: sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2
Status: Downloaded newer image for php:apache
---> 40286d9b5483
Step 2/14 : RUN apt-get update && apt-get install -y git protobuf-compiler
---> Running in 2d755eb6d197
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.1 kB]
Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
Get:4 http://deb.debian.org/debian trixie/main arm64 Packages [9604 kB]
Get:5 http://deb.debian.org/debian trixie-updates/main arm64 Packages [2432 B]
Get:6 http://deb.debian.org/debian-security trixie-security/main arm64 Packages [33.6 kB]
Fetched 9730 kB in 1s (10.2 MB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
git-man less libcbor0.10 libcurl3t64-gnutls libedit2 liberror-perl
libfido2-1 libngtcp2-16 libngtcp2-crypto-gnutls8 libprotobuf-dev
libprotobuf-lite32t64 libprotobuf32t64 libprotoc32t64 libx11-6 libx11-data
libxau6 libxcb1 libxdmcp6 libxext6 libxmuu1 openssh-client xauth zlib1g-dev
Suggested packages:
gettext-base git-doc git-email git-gui gitk gitweb git-cvs git-mediawiki
git-svn keychain libpam-ssh monkeysphere ssh-askpass protobuf-mode-el
The following NEW packages will be installed:
git git-man less libcbor0.10 libcurl3t64-gnutls libedit2 liberror-perl
libfido2-1 libngtcp2-16 libngtcp2-crypto-gnutls8 libprotobuf-dev
libprotobuf-lite32t64 libprotobuf32t64 libprotoc32t64 libx11-6 libx11-data
libxau6 libxcb1 libxdmcp6 libxext6 libxmuu1 openssh-client protobuf-compiler
xauth zlib1g-dev
0 upgraded, 25 newly installed, 0 to remove and 1 not upgraded.
Need to get 18.3 MB of archives.
After this operation, 87.4 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian trixie/main arm64 less arm64 668-1 [156 kB]
Get:2 http://deb.debian.org/debian trixie/main arm64 libedit2 arm64 3.1-20250104-1 [89.3 kB]
Get:3 http://deb.debian.org/debian trixie/main arm64 libcbor0.10 arm64 0.10.2-2 [27.4 kB]
Get:4 http://deb.debian.org/debian trixie/main arm64 libfido2-1 arm64 1.15.0-1+b1 [74.3 kB]
Get:5 http://deb.debian.org/debian trixie/main arm64 openssh-client arm64 1:10.0p1-7 [925 kB]
Get:6 http://deb.debian.org/debian trixie/main arm64 libngtcp2-16 arm64 1.11.0-1 [121 kB]
Get:7 http://deb.debian.org/debian trixie/main arm64 libngtcp2-crypto-gnutls8 arm64 1.11.0-1 [28.2 kB]
Get:8 http://deb.debian.org/debian trixie/main arm64 libcurl3t64-gnutls arm64 8.14.1-2 [353 kB]
Get:9 http://deb.debian.org/debian trixie/main arm64 liberror-perl all 0.17030-1 [26.9 kB]
Get:10 http://deb.debian.org/debian trixie/main arm64 git-man all 1:2.47.2-0.2 [2205 kB]
Get:11 http://deb.debian.org/debian trixie/main arm64 git arm64 1:2.47.2-0.2 [8724 kB]
Get:12 http://deb.debian.org/debian trixie/main arm64 zlib1g-dev arm64 1:1.3.dfsg+really1.3.1-1+b1 [917 kB]
Get:13 http://deb.debian.org/debian trixie/main arm64 libprotobuf32t64 arm64 3.21.12-11 [858 kB]
Get:14 http://deb.debian.org/debian trixie/main arm64 libprotobuf-lite32t64 arm64 3.21.12-11 [250 kB]
Get:15 http://deb.debian.org/debian trixie/main arm64 libprotobuf-dev arm64 3.21.12-11 [1261 kB]
Get:16 http://deb.debian.org/debian trixie/main arm64 libprotoc32t64 arm64 3.21.12-11 [790 kB]
Get:17 http://deb.debian.org/debian trixie/main arm64 libxau6 arm64 1:1.0.11-1 [20.6 kB]
Get:18 http://deb.debian.org/debian trixie/main arm64 libxdmcp6 arm64 1:1.1.5-1 [27.8 kB]
Get:19 http://deb.debian.org/debian trixie/main arm64 libxcb1 arm64 1.17.0-2+b1 [143 kB]
Get:20 http://deb.debian.org/debian trixie/main arm64 libx11-data all 2:1.8.12-1 [343 kB]
Get:21 http://deb.debian.org/debian trixie/main arm64 libx11-6 arm64 2:1.8.12-1 [795 kB]
Get:22 http://deb.debian.org/debian trixie/main arm64 libxext6 arm64 2:1.3.4-1+b3 [49.2 kB]
Get:23 http://deb.debian.org/debian trixie/main arm64 libxmuu1 arm64 2:1.1.3-3+b4 [22.0 kB]
Get:24 http://deb.debian.org/debian trixie/main arm64 protobuf-compiler arm64 3.21.12-11 [84.7 kB]
Get:25 http://deb.debian.org/debian trixie/main arm64 xauth arm64 1:1.1.2-1.1 [35.4 kB]
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
debconf: unable to initialize frontend: Teletype
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Noninteractive
Fetched 18.3 MB in 0s (49.0 MB/s)
Selecting previously unselected package less.
(Reading database ... 15697 files and directories currently installed.)
Preparing to unpack .../00-less_668-1_arm64.deb ...
Unpacking less (668-1) ...
Selecting previously unselected package libedit2:arm64.
Preparing to unpack .../01-libedit2_3.1-20250104-1_arm64.deb ...
Unpacking libedit2:arm64 (3.1-20250104-1) ...
Selecting previously unselected package libcbor0.10:arm64.
Preparing to unpack .../02-libcbor0.10_0.10.2-2_arm64.deb ...
Unpacking libcbor0.10:arm64 (0.10.2-2) ...
Selecting previously unselected package libfido2-1:arm64.
Preparing to unpack .../03-libfido2-1_1.15.0-1+b1_arm64.deb ...
Unpacking libfido2-1:arm64 (1.15.0-1+b1) ...
Selecting previously unselected package openssh-client.
Preparing to unpack .../04-openssh-client_1%3a10.0p1-7_arm64.deb ...
Unpacking openssh-client (1:10.0p1-7) ...
Selecting previously unselected package libngtcp2-16:arm64.
Preparing to unpack .../05-libngtcp2-16_1.11.0-1_arm64.deb ...
Unpacking libngtcp2-16:arm64 (1.11.0-1) ...
Selecting previously unselected package libngtcp2-crypto-gnutls8:arm64.
Preparing to unpack .../06-libngtcp2-crypto-gnutls8_1.11.0-1_arm64.deb ...
Unpacking libngtcp2-crypto-gnutls8:arm64 (1.11.0-1) ...
Selecting previously unselected package libcurl3t64-gnutls:arm64.
Preparing to unpack .../07-libcurl3t64-gnutls_8.14.1-2_arm64.deb ...
Unpacking libcurl3t64-gnutls:arm64 (8.14.1-2) ...
Selecting previously unselected package liberror-perl.
Preparing to unpack .../08-liberror-perl_0.17030-1_all.deb ...
Unpacking liberror-perl (0.17030-1) ...
Selecting previously unselected package git-man.
Preparing to unpack .../09-git-man_1%3a2.47.2-0.2_all.deb ...
Unpacking git-man (1:2.47.2-0.2) ...
Selecting previously unselected package git.
Preparing to unpack .../10-git_1%3a2.47.2-0.2_arm64.deb ...
Unpacking git (1:2.47.2-0.2) ...
Selecting previously unselected package zlib1g-dev:arm64.
Preparing to unpack .../11-zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1+b1_arm64.deb ...
Unpacking zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1+b1) ...
Selecting previously unselected package libprotobuf32t64:arm64.
Preparing to unpack .../12-libprotobuf32t64_3.21.12-11_arm64.deb ...
Unpacking libprotobuf32t64:arm64 (3.21.12-11) ...
Selecting previously unselected package libprotobuf-lite32t64:arm64.
Preparing to unpack .../13-libprotobuf-lite32t64_3.21.12-11_arm64.deb ...
Unpacking libprotobuf-lite32t64:arm64 (3.21.12-11) ...
Selecting previously unselected package libprotobuf-dev:arm64.
Preparing to unpack .../14-libprotobuf-dev_3.21.12-11_arm64.deb ...
Unpacking libprotobuf-dev:arm64 (3.21.12-11) ...
Selecting previously unselected package libprotoc32t64:arm64.
Preparing to unpack .../15-libprotoc32t64_3.21.12-11_arm64.deb ...
Unpacking libprotoc32t64:arm64 (3.21.12-11) ...
Selecting previously unselected package libxau6:arm64.
Preparing to unpack .../16-libxau6_1%3a1.0.11-1_arm64.deb ...
Unpacking libxau6:arm64 (1:1.0.11-1) ...
Selecting previously unselected package libxdmcp6:arm64.
Preparing to unpack .../17-libxdmcp6_1%3a1.1.5-1_arm64.deb ...
Unpacking libxdmcp6:arm64 (1:1.1.5-1) ...
Selecting previously unselected package libxcb1:arm64.
Preparing to unpack .../18-libxcb1_1.17.0-2+b1_arm64.deb ...
Unpacking libxcb1:arm64 (1.17.0-2+b1) ...
Selecting previously unselected package libx11-data.
Preparing to unpack .../19-libx11-data_2%3a1.8.12-1_all.deb ...
Unpacking libx11-data (2:1.8.12-1) ...
Selecting previously unselected package libx11-6:arm64.
Preparing to unpack .../20-libx11-6_2%3a1.8.12-1_arm64.deb ...
Unpacking libx11-6:arm64 (2:1.8.12-1) ...
Selecting previously unselected package libxext6:arm64.
Preparing to unpack .../21-libxext6_2%3a1.3.4-1+b3_arm64.deb ...
Unpacking libxext6:arm64 (2:1.3.4-1+b3) ...
Selecting previously unselected package libxmuu1:arm64.
Preparing to unpack .../22-libxmuu1_2%3a1.1.3-3+b4_arm64.deb ...
Unpacking libxmuu1:arm64 (2:1.1.3-3+b4) ...
Selecting previously unselected package protobuf-compiler.
Preparing to unpack .../23-protobuf-compiler_3.21.12-11_arm64.deb ...
Unpacking protobuf-compiler (3.21.12-11) ...
Selecting previously unselected package xauth.
Preparing to unpack .../24-xauth_1%3a1.1.2-1.1_arm64.deb ...
Unpacking xauth (1:1.1.2-1.1) ...
Setting up libprotobuf-lite32t64:arm64 (3.21.12-11) ...
Setting up libprotobuf32t64:arm64 (3.21.12-11) ...
Setting up libxau6:arm64 (1:1.0.11-1) ...
Setting up libxdmcp6:arm64 (1:1.1.5-1) ...
Setting up libxcb1:arm64 (1.17.0-2+b1) ...
Setting up libcbor0.10:arm64 (0.10.2-2) ...
Setting up libedit2:arm64 (3.1-20250104-1) ...
Setting up less (668-1) ...
Setting up liberror-perl (0.17030-1) ...
Setting up libx11-data (2:1.8.12-1) ...
Setting up zlib1g-dev:arm64 (1:1.3.dfsg+really1.3.1-1+b1) ...
Setting up git-man (1:2.47.2-0.2) ...
Setting up libx11-6:arm64 (2:1.8.12-1) ...
Setting up libngtcp2-16:arm64 (1.11.0-1) ...
Setting up libprotoc32t64:arm64 (3.21.12-11) ...
Setting up libfido2-1:arm64 (1.15.0-1+b1) ...
Setting up libxmuu1:arm64 (2:1.1.3-3+b4) ...
Setting up libngtcp2-crypto-gnutls8:arm64 (1.11.0-1) ...
Setting up protobuf-compiler (3.21.12-11) ...
Setting up openssh-client (1:10.0p1-7) ...
Setting up libcurl3t64-gnutls:arm64 (8.14.1-2) ...
Setting up libxext6:arm64 (2:1.3.4-1+b3) ...
Setting up libprotobuf-dev:arm64 (3.21.12-11) ...
Setting up git (1:2.47.2-0.2) ...
Setting up xauth (1:1.1.2-1.1) ...
Processing triggers for libc-bin (2.41-12) ...
---> Removed intermediate container 2d755eb6d197
---> 48a38b321576
Step 3/14 : COPY --from=composer/composer:latest-bin /composer /usr/bin/composer
latest-bin: Pulling from composer/composer
03385178446b: Already exists
Digest: sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592
Status: Downloaded newer image for composer/composer:latest-bin
---> 5807d22dfebf
Step 4/14 : COPY . /app
---> ddce30a54855
Step 5/14 : WORKDIR /app
---> Running in ff370decff36
---> Removed intermediate container ff370decff36
---> 6bc5d846053a
Step 6/14 : RUN composer require google/protobuf && protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f)
---> Running in 035394b8cd17
./composer.json has been created
Running composer update google/protobuf
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking google/protobuf (v4.32.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
Failed to download google/protobuf from dist: The zip extension and unzip/7z commands are both missing, skipping.
Your command-line PHP is using multiple ini files. Run `php --ini` to show them.
Now trying to download from source
- Syncing google/protobuf (v4.32.0) into cache
- Installing google/protobuf (v4.32.0): Cloning 9a9a92ecbe from cache
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
No security vulnerability advisories found.
Using version ^4.32 for google/protobuf
---> Removed intermediate container 035394b8cd17
---> 825962e7c370
Step 7/14 : FROM php:apache
---> 40286d9b5483
Step 8/14 : RUN a2enmod rewrite
---> Running in d358242eac79
Enabling module rewrite.
To activate the new configuration, you need to run:
service apache2 restart
---> Removed intermediate container d358242eac79
---> 84e028b3de19
Step 9/14 : COPY --from=builder /app /var/www/html/
---> e44f8fc475bd
Step 10/14 : RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /etc/apache2/apache2.conf
---> Running in 9dbb6c54c22d
---> Removed intermediate container 9dbb6c54c22d
---> 60eaf6915e1c
Step 11/14 : ARG VERSION
---> Running in 0b420faff8bb
---> Removed intermediate container 0b420faff8bb
---> 327896ad8953
Step 12/14 : ENV VERSION=$VERSION
---> Running in c7cd5e4bf10f
---> Removed intermediate container c7cd5e4bf10f
---> 6e738303f9fb
Step 13/14 : EXPOSE 80
---> Running in 669583e11fa3
---> Removed intermediate container 669583e11fa3
---> a69700db23c9
Step 14/14 : ENTRYPOINT ["apachectl", "-D", "FOREGROUND"]
---> Running in 4669b657be59
---> Removed intermediate container 4669b657be59
---> 7b64d83eba31
Successfully built 7b64d83eba31
docker image ls
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 7b64d83eba31 2 seconds ago 591MB
<none> <none> 825962e7c370 4 seconds ago 684MB
php apache 40286d9b5483 2 days ago 525MB
composer/composer latest-bin ba42955de964 9 days ago 3.12MB
If properly managed in theory php is stored and YouTube operational API is a very light overlay over it, so size are absolute ones, but should not be actual ones, so remove dependencies should not be a matter.
It seems like a bad practice to reach a point where want to update all containers.
Maybe at a point in time want to update a given container and in such case a syntax like docker update youtube_operational NEW_COMMIT_HASH would be nice and should quite easily be doable, otherwise cd to the given folder and git update NEW_COMMIT_HASH should be fine.
DuckDuckGo and Google search docker build given git repository.
docker run https://github.com/Benjamin-Loison/YouTube-operational-API
Output:
docker: invalid reference format: repository name (/github.com/Benjamin-Loison/YouTube-operational-API) must be lowercase.
See 'docker run --help'.
docker run --help
Output:
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Create and run a new container from an image
Aliases:
docker container run, docker run
Options:
--add-host list Add a custom host-to-IP mapping (host:ip)
--annotation map Add an annotation to the container (passed through to the OCI runtime) (default map[])
-a, --attach list Attach to STDIN, STDOUT or STDERR
--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
--blkio-weight-device list Block IO weight (relative device weight) (default [])
--cap-add list Add Linux capabilities
--cap-drop list Drop Linux capabilities
--cgroup-parent string Optional parent cgroup for the container
--cgroupns string Cgroup namespace to use (host|private)
'host': Run the container in the Docker host's cgroup namespace
'private': Run the container in its own private cgroup namespace
'': Use the cgroup namespace as configured by the
default-cgroupns-mode option on the daemon (default)
--cidfile string Write the container ID to the file
--cpu-period int Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-period int Limit CPU real-time period in microseconds
--cpu-rt-runtime int Limit CPU real-time runtime in microseconds
-c, --cpu-shares int CPU shares (relative weight)
--cpus decimal Number of CPUs
--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
-d, --detach Run container in background and print container ID
--detach-keys string Override the key sequence for detaching a container
--device list Add a host device to the container
--device-cgroup-rule list Add a rule to the cgroup allowed devices list
--device-read-bps list Limit read rate (bytes per second) from a device (default [])
--device-read-iops list Limit read rate (IO per second) from a device (default [])
--device-write-bps list Limit write rate (bytes per second) to a device (default [])
--device-write-iops list Limit write rate (IO per second) to a device (default [])
--disable-content-trust Skip image verification (default true)
--dns list Set custom DNS servers
--dns-option list Set DNS options
--dns-search list Set custom DNS search domains
--domainname string Container NIS domain name
--entrypoint string Overwrite the default ENTRYPOINT of the image
-e, --env list Set environment variables
--env-file list Read in a file of environment variables
--expose list Expose a port or a range of ports
--gpus gpu-request GPU devices to add to the container ('all' to pass all GPUs)
--group-add list Add additional groups to join
--health-cmd string Command to run to check health
--health-interval duration Time between running the check (ms|s|m|h) (default 0s)
--health-retries int Consecutive failures needed to report unhealthy
--health-start-interval duration Time between running the check during the start period (ms|s|m|h) (default 0s)
--health-start-period duration Start period for the container to initialize before starting health-retries countdown
(ms|s|m|h) (default 0s)
--health-timeout duration Maximum time to allow one check to run (ms|s|m|h) (default 0s)
--help Print usage
-h, --hostname string Container host name
--init Run an init inside the container that forwards signals and reaps processes
-i, --interactive Keep STDIN open even if not attached
--ip string IPv4 address (e.g., 172.30.100.104)
--ip6 string IPv6 address (e.g., 2001:db8::33)
--ipc string IPC mode to use
--isolation string Container isolation technology
--kernel-memory bytes Kernel memory limit
-l, --label list Set meta data on a container
--label-file list Read in a line delimited file of labels
--link list Add link to another container
--link-local-ip list Container IPv4/IPv6 link-local addresses
--log-driver string Logging driver for the container
--log-opt list Log driver options
--mac-address string Container MAC address (e.g., 92:d0:c6:0a:29:33)
-m, --memory bytes Memory limit
--memory-reservation bytes Memory soft limit
--memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable unlimited swap
--memory-swappiness int Tune container memory swappiness (0 to 100) (default -1)
--mount mount Attach a filesystem mount to the container
--name string Assign a name to the container
--network network Connect a container to a network
--network-alias list Add network-scoped alias for the container
--no-healthcheck Disable any container-specified HEALTHCHECK
--oom-kill-disable Disable OOM Killer
--oom-score-adj int Tune host's OOM preferences (-1000 to 1000)
--pid string PID namespace to use
--pids-limit int Tune container pids limit (set -1 for unlimited)
--platform string Set platform if server is multi-platform capable
--privileged Give extended privileges to this container
-p, --publish list Publish a container's port(s) to the host
-P, --publish-all Publish all exposed ports to random ports
--pull string Pull image before running ("always", "missing", "never") (default "missing")
-q, --quiet Suppress the pull output
--read-only Mount the container's root filesystem as read only
--restart string Restart policy to apply when a container exits (default "no")
--rm Automatically remove the container and its associated anonymous volumes when it exits
--runtime string Runtime to use for this container
--security-opt list Security Options
--shm-size bytes Size of /dev/shm
--sig-proxy Proxy received signals to the process (default true)
--stop-signal string Signal to stop the container
--stop-timeout int Timeout (in seconds) to stop a container
--storage-opt list Storage driver options for the container
--sysctl map Sysctl options (default map[])
--tmpfs list Mount a tmpfs directory
-t, --tty Allocate a pseudo-TTY
--ulimit ulimit Ulimit options (default [])
-u, --user string Username or UID (format: <name|uid>[:<group|gid>])
--userns string User namespace to use
--uts string UTS namespace to use
-v, --volume list Bind mount a volume
--volume-driver string Optional volume driver for the container
--volumes-from list Mount volumes from the specified container(s)
-w, --workdir string Working directory inside the container
Google search docker run Git repository.
docker build https://github.com/Benjamin-Loison/YouTube-operational-API
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Downloading build context from remote url: https://github.com/Benjamin-Loison/YouTube-operational-API 338.2kB
Sending build context to Docker daemon 340kB
Error response from daemon: failed to parse Dockerfile: dockerfile line greater than max allowed size of 65535
Same if executed again.
DuckDuckGo and Google search "dockerfile line greater than max allowed size of 65535".
./buildx-v0.27.0.linux-arm64 run
Output:
Extended build capabilities with BuildKit
Usage:
buildx-v0.27.0.linux-arm64
buildx-v0.27.0.linux-arm64 [command]
Available Commands:
bake Build from a file
build Start a build
create Create a new builder instance
dial-stdio Proxy current stdio streams to builder instance
du Disk usage
help Help about any command
history Commands to work on build records
imagetools Commands to work on images in registry
inspect Inspect current builder instance
ls List builder instances
prune Remove build cache
rm Remove one or more builder instances
stop Stop builder instance
use Set the current builder instance
version Show buildx version information
Flags:
--builder string Override the configured builder instance
-D, --debug Enable debug logging
-h, --help help for buildx-v0.27.0.linux-arm64
Use "buildx-v0.27.0.linux-arm64 [command] --help" for more information about a command.
Experimental commands and flags are hidden. Set BUILDX_EXPERIMENTAL=1 to show them.
ERROR: unknown command: "run"
./buildx-v0.27.0.linux-arm64 build https://github.com/Benjamin-Loison/YouTube-operational-API
buildx-v0.27.0.linux-arm64 build github.com/Benjamin-Loison/YouTube-operational-API
Output:
[+] Building 12.7s (14/14) FINISHED docker:default
=> [internal] load git source github.com/Benjamin-Loison/YouTube-operational-API 1.6s
=> [internal] load metadata for docker.io/composer/composer:latest-bin 1.3s
=> [internal] load metadata for docker.io/library/php:apache 1.4s
=> [stage-0 1/9] FROM docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> => resolve docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> CACHED FROM docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> => resolve docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> CACHED [stage-0 2/9] RUN a2enmod rewrite 0.0s
=> [stage-0 3/9] COPY . /var/www/html/ 0.0s
=> [stage-0 4/9] RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /e 0.2s
=> [stage-0 5/9] COPY --from=composer/composer:latest-bin /composer /usr/bin/composer 0.1s
=> [stage-0 6/9] RUN apt update 2.2s
=> [stage-0 7/9] RUN apt install -y git protobuf-compiler 5.2s
=> [stage-0 8/9] RUN composer require google/protobuf 1.3s
=> [stage-0 9/9] RUN protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f) 0.2s
=> exporting to image 0.3s
=> => exporting layers 0.3s
=> => writing image sha256:152d1c5b7f3b9e579139d0d56685c0fc1e52eb94bb8e2f053c7882e64edfe6bb 0.0s
1 warning found (use docker --debug to expand):
- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 17)
Source: the Stack Overflow question 26753030
docker image ls
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 152d1c5b7f3b 39 seconds ago 619MB
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
./buildx-v0.27.0.linux-arm64 build github.com/Benjamin-Loison/YouTube-operational-API
Output:
[+] Building 1.2s (14/14) FINISHED docker:default
=> CACHED [internal] load git source github.com/Benjamin-Loison/YouTube-operational-API 0.7s
=> [internal] load metadata for docker.io/composer/composer:latest-bin 0.4s
=> [internal] load metadata for docker.io/library/php:apache 0.4s
=> [stage-0 1/9] FROM docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> => resolve docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> FROM docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> => resolve docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> CACHED [stage-0 2/9] RUN a2enmod rewrite 0.0s
=> CACHED [stage-0 3/9] COPY . /var/www/html/ 0.0s
=> CACHED [stage-0 4/9] RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p 0.0s
=> CACHED [stage-0 5/9] COPY --from=composer/composer:latest-bin /composer /usr/bin/composer 0.0s
=> CACHED [stage-0 6/9] RUN apt update 0.0s
=> CACHED [stage-0 7/9] RUN apt install -y git protobuf-compiler 0.0s
=> CACHED [stage-0 8/9] RUN composer require google/protobuf 0.0s
=> CACHED [stage-0 9/9] RUN protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f) 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:152d1c5b7f3b9e579139d0d56685c0fc1e52eb94bb8e2f053c7882e64edfe6bb 0.0s
1 warning found (use docker --debug to expand):
- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 17)
ls -lah does not list any change.
docker run github.com/Benjamin-Loison/YouTube-operational-API
Output:
docker: invalid reference format: repository name (Benjamin-Loison/YouTube-operational-API) must be lowercase.
See 'docker run --help'.
docker image ls
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 152d1c5b7f3b 2 minutes ago 619MB
docker run github.com/benjamin-loison/youtube-operational-api
Output:
Unable to find image 'github.com/benjamin-loison/youtube-operational-api:latest' locally
docker: Error response from daemon: error parsing HTTP 404 response body: no error details found in HTTP response body: "{\"error\":\"Not Found\"}".
See 'docker run --help'.
In my opinion the repository should be filled automatically.
buildx-v0.27.0.linux-arm64 build --tag youtube_operational_api github.com/Benjamin-Loison/YouTube-operational-API
Output:
[+] Building 1.5s (14/14) FINISHED docker:default
=> CACHED [internal] load git source github.com/Benjamin-Loison/YouTube-operational-API 0.7s
=> [internal] load metadata for docker.io/composer/composer:latest-bin 0.7s
=> [internal] load metadata for docker.io/library/php:apache 0.6s
=> [stage-0 1/9] FROM docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> => resolve docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> FROM docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> => resolve docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> CACHED [stage-0 2/9] RUN a2enmod rewrite 0.0s
=> CACHED [stage-0 3/9] COPY . /var/www/html/ 0.0s
=> CACHED [stage-0 4/9] RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p 0.0s
=> CACHED [stage-0 5/9] COPY --from=composer/composer:latest-bin /composer /usr/bin/composer 0.0s
=> CACHED [stage-0 6/9] RUN apt update 0.0s
=> CACHED [stage-0 7/9] RUN apt install -y git protobuf-compiler 0.0s
=> CACHED [stage-0 8/9] RUN composer require google/protobuf 0.0s
=> CACHED [stage-0 9/9] RUN protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f) 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:152d1c5b7f3b9e579139d0d56685c0fc1e52eb94bb8e2f053c7882e64edfe6bb 0.0s
=> => naming to docker.io/library/youtube_operational_api 0.0s
1 warning found (use docker --debug to expand):
- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 17)
docker image ls
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
youtube_operational_api latest 152d1c5b7f3b 6 minutes ago 619MB
https://docs.docker.com/reference/build-checks/json-args-recommended/
./buildx-v0.27.0.linux-arm64 ['build', '--tag', 'youtube_operational_api', 'github.com/Benjamin-Loison/YouTube-operational-API']
ERROR: unknown flag: --tag,
" does not help.
Well it is blaming Dockerfile.
DuckDuckGo and Google search "docker run github.com".
docker run `../Andromeda606_YouTube-operational-API/buildx-v0.27.0.linux-arm64 build --tag youtube_operational_api -q github.com/Benjamin-Loison/YouTube-operational-API`
Output:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Sat Aug 30 21:53:41.924601 2025] [mpm_prefork:notice] [pid 9:tid 9] AH00163: Apache/2.4.65 (Debian) PHP/8.4.12 configured -- resuming normal operations
[Sat Aug 30 21:53:41.924649 2025] [core:notice] [pid 9:tid 9] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
docker run -p 8080:80 `docker build --tag youtube_operational_api -q github.com/Benjamin-Loison/YouTube-operational-API`
https://hub.docker.com/billing
Improve_websites_thanks_to_open_source/issues/2212 would help.
docker container ls
Output:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29e833065d58 de02d9009c0e "docker-php-entrypoi…" 58 seconds ago Up 57 seconds 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp upbeat_hopper
docker stop 29e833065d58
29e833065d58
Source: https://forums.docker.com/t/docker-run-cannot-be-killed-with-ctrl-c/13108/3
as ctrl + c even twice does not gracefully exit, and 3 as far as I know force quit, but the container is still running it seems.
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker image ls
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
youtube_operational_api latest 9be509d1a92f 18 seconds ago 619MB
<none> <none> de02d9009c0e 3 minutes ago 619MB
It keeps old image for an unknown reason.
DuckDuckGo search Docker remove none image.
Could buildx build github.com/Benjamin-Loison/YouTube-operational-API --tag youtube_operational_api && docker rmi $(docker images --filter "dangling=true" -q --no-trunc) && docker run -p 8080:80 youtube_operational_api. The title of the webpage is correctly updated according to my tests.
docker image prune
Output:
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]
docker image prune --help
Output:
Usage: docker image prune [OPTIONS]
Remove unused images
Options:
-a, --all Remove all unused images, not just dangling ones
--filter filter Provide filter values (e.g. "until=<timestamp>")
-f, --force Do not prompt for confirmation
docker image prune --all -f
Total reclaimed space: 0B
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Deleted: sha256:de02d9009c0eda7a0fa1baeaeb1deb5e64e28330a8003f8c5a7b7a1d48dba7c5
Source: the Stack Overflow answer 33913711
buildx build github.com/BTKBot/YouTube-operational-API --tag youtube_operational_api && docker rmi $(docker images --filter "dangling=true" -q --no-trunc); docker run -p 8080:80 youtube_operational_api
Output:
[+] Building 11.4s (14/14) FINISHED docker:default
=> [internal] load git source github.com/BTKBot/YouTube-operational-API 1.6s
=> [internal] load metadata for docker.io/composer/composer:latest-bin 0.3s
=> [internal] load metadata for docker.io/library/php:apache 0.3s
=> [stage-0 1/9] FROM docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> => resolve docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> CACHED FROM docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> => resolve docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> CACHED [stage-0 2/9] RUN a2enmod rewrite 0.0s
=> [stage-0 3/9] COPY . /var/www/html/ 0.1s
=> [stage-0 4/9] RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /e 0.2s
=> [stage-0 5/9] COPY --from=composer/composer:latest-bin /composer /usr/bin/composer 0.1s
=> [stage-0 6/9] RUN apt update 2.2s
=> [stage-0 7/9] RUN apt install -y git protobuf-compiler 5.1s
=> [stage-0 8/9] RUN composer require google/protobuf 1.3s
=> [stage-0 9/9] RUN protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f) 0.2s
=> exporting to image 0.3s
=> => exporting layers 0.3s
=> => writing image sha256:1dd233c7eb607398aae366f6e4ff01d317afe81b217c3825b7aa0994b820af9f 0.0s
=> => naming to docker.io/library/youtube_operational_api 0.0s
1 warning found (use docker --debug to expand):
- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 17)
Error response from daemon: conflict: unable to delete 7b096e096234 (must be forced) - image is being used by stopped container 139bda70ed13
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Sat Aug 30 22:40:37.284981 2025] [mpm_prefork:notice] [pid 9:tid 9] AH00163: Apache/2.4.65 (Debian) PHP/8.4.12 configured -- resuming normal operations
[Sat Aug 30 22:40:37.285030 2025] [core:notice] [pid 9:tid 9] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
while docker container ls was returning nothing before above command.
buildx build github.com/BTKBot/YouTube-operational-API --tag youtube_operational_api && docker rmi --force $(docker images --filter "dangling=true" -q --no-trunc); docker run -p 8080:80 youtube_operational_api
Output:
[+] Building 11.9s (14/14) FINISHED docker:default
=> [internal] load git source github.com/BTKBot/YouTube-operational-API 1.6s
=> [internal] load metadata for docker.io/composer/composer:latest-bin 0.6s
=> [internal] load metadata for docker.io/library/php:apache 0.7s
=> [stage-0 1/9] FROM docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> => resolve docker.io/library/php:apache@sha256:fc535e6bf80041c11d99380d2a5a3ff4ceaafac7efbd4f8d53c876ca4751c7c2 0.0s
=> CACHED FROM docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> => resolve docker.io/composer/composer:latest-bin@sha256:abd63db39eb2565a5af2bece27befd9bdf1041938b5caf200852f3458b8b3592 0.0s
=> CACHED [stage-0 2/9] RUN a2enmod rewrite 0.0s
=> [stage-0 3/9] COPY . /var/www/html/ 0.0s
=> [stage-0 4/9] RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /e 0.2s
=> [stage-0 5/9] COPY --from=composer/composer:latest-bin /composer /usr/bin/composer 0.1s
=> [stage-0 6/9] RUN apt update 2.3s
=> [stage-0 7/9] RUN apt install -y git protobuf-compiler 5.0s
=> [stage-0 8/9] RUN composer require google/protobuf 1.3s
=> [stage-0 9/9] RUN protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f) 0.2s
=> exporting to image 0.3s
=> => exporting layers 0.3s
=> => writing image sha256:48a872ae4644bc24200aa385eaeac4b185c0ebc8301dcaea785a8330f1ee9bf8 0.0s
=> => naming to docker.io/library/youtube_operational_api 0.0s
1 warning found (use docker --debug to expand):
- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 17)
Deleted: sha256:1dd233c7eb607398aae366f6e4ff01d317afe81b217c3825b7aa0994b820af9f
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Sat Aug 30 22:42:43.216140 2025] [mpm_prefork:notice] [pid 9:tid 9] AH00163: Apache/2.4.65 (Debian) PHP/8.4.12 configured -- resuming normal operations
[Sat Aug 30 22:42:43.216256 2025] [core:notice] [pid 9:tid 9] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
What do you think about it? I don't see a strong advantage to go towards Docker Hub or any alternative knowing that.
I prefer now thinking deep about adding a new type of Docker dependency (Docker Hub or similar) support, to avoid later on dropping the support if I realize that it is inappropriate. People could ask me support for apt (similarly to yt-dlp), pacman and so on, but in my opinion with current commit as release design, there is no need to adapt my project to these software managers, they should just be compatible with git and that's all.
Personal notes:
docker build --tag youtube_operational_api github.com/Benjamin-Loison/YouTube-operational-API && docker run -p 8080:80 youtube_operational_api
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
unable to prepare context: unable to 'git clone' to temporary context directory: error fetching: fatal: couldn't find remote ref master
: exit status 128
DuckDuckGo search docker build specify branch.
docker build --tag youtube_operational_api github.com/Benjamin-Loison/YouTube-operational-API:main && docker run -p 8080:80 youtube_operational_api
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
unable to prepare context: unable to 'git clone' to temporary context directory: error fetching: remote: Repository not found.
fatal: repository 'https://github.com/Benjamin-Loison/YouTube-operational-API:main/' not found
: exit status 128
DuckDuckGo search docker build specify remote branch.
The Stack Overflow answer 37547297:
docker build --tag youtube_operational_api github.com/Benjamin-Loison/YouTube-operational-API#main && docker run -p 8080:80 youtube_operational_api
Output:
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Sending build context to Docker daemon 384kB
Step 1/10 : FROM php:apache
---> 3bbddfeb9299
Step 2/10 : RUN a2enmod rewrite
---> Running in 8dc1795cfa10
Enabling module rewrite.
To activate the new configuration, you need to run:
service apache2 restart
---> Removed intermediate container 8dc1795cfa10
---> 09a53ab362c5
Step 3/10 : COPY . /var/www/html/
---> 70f24b86191b
Step 4/10 : RUN sed -ri -e 'N;N;N;s/(<Directory \/var\/www\/>\n)(.*\n)(.*)AllowOverride None/\1\2\3AllowOverride All/;p;d;' /etc/apache2/apache2.conf
---> Running in 793e262b6a68
---> Removed intermediate container 793e262b6a68
---> 85cc5860706a
Step 5/10 : COPY --from=composer/composer:latest-bin /composer /usr/bin/composer
---> 57dcf2abe9c1
Step 6/10 : RUN apt update
---> Running in d1ed9300820c
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 Packages [8791 kB]
Get:5 http://deb.debian.org/debian bookworm-updates/main amd64 Packages [6924 B]
Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [278 kB]
Fetched 9331 kB in 2s (4414 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
77 packages can be upgraded. Run 'apt list --upgradable' to see them.
---> Removed intermediate container d1ed9300820c
---> f2a2d9ff5b88
Step 7/10 : RUN apt install -y git protobuf-compiler
---> Running in 5e14bd554c94
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
curl git-man less libbsd0 libcbor0.8 libcurl3-gnutls libcurl4 libedit2
liberror-perl libfido2-1 libprotobuf-dev libprotobuf-lite32 libprotobuf32
libprotoc32 libssl3 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6
libxmuu1 openssh-client openssl xauth zlib1g-dev
Suggested packages:
gettext-base git-daemon-run | git-daemon-sysvinit git-doc git-email git-gui
gitk gitweb git-cvs git-mediawiki git-svn keychain libpam-ssh monkeysphere
ssh-askpass protobuf-mode-el
The following NEW packages will be installed:
git git-man less libbsd0 libcbor0.8 libcurl3-gnutls libedit2 liberror-perl
libfido2-1 libprotobuf-dev libprotobuf-lite32 libprotobuf32 libprotoc32
libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxmuu1
openssh-client protobuf-compiler xauth zlib1g-dev
The following packages will be upgraded:
curl libcurl4 libssl3 openssl
4 upgraded, 24 newly installed, 0 to remove and 73 not upgraded.
Need to get 21.0 MB of archives.
After this operation, 81.0 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main amd64 less amd64 590-2.1~deb12u2 [132 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 libbsd0 amd64 0.11.7-2 [117 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 libedit2 amd64 3.1-20221030-2 [93.0 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 libcbor0.8 amd64 0.8.0-2+b1 [27.4 kB]
Get:5 http://deb.debian.org/debian bookworm/main amd64 libssl3 amd64 3.0.17-1~deb12u2 [2027 kB]
Get:6 http://deb.debian.org/debian bookworm/main amd64 libfido2-1 amd64 1.12.0-2+b1 [77.2 kB]
Get:7 http://deb.debian.org/debian bookworm/main amd64 openssh-client amd64 1:9.2p1-2+deb12u7 [992 kB]
Get:8 http://deb.debian.org/debian bookworm/main amd64 curl amd64 7.88.1-10+deb12u14 [316 kB]
Get:9 http://deb.debian.org/debian bookworm/main amd64 libcurl4 amd64 7.88.1-10+deb12u14 [392 kB]
Get:10 http://deb.debian.org/debian bookworm/main amd64 libcurl3-gnutls amd64 7.88.1-10+deb12u14 [386 kB]
Get:11 http://deb.debian.org/debian bookworm/main amd64 liberror-perl all 0.17029-2 [29.0 kB]
Get:12 http://deb.debian.org/debian bookworm/main amd64 git-man all 1:2.39.5-0+deb12u2 [2053 kB]
Get:13 http://deb.debian.org/debian bookworm/main amd64 git amd64 1:2.39.5-0+deb12u2 [7260 kB]
Get:14 http://deb.debian.org/debian bookworm/main amd64 zlib1g-dev amd64 1:1.2.13.dfsg-1 [916 kB]
Get:15 http://deb.debian.org/debian bookworm/main amd64 libprotobuf32 amd64 3.21.12-3 [932 kB]
Get:16 http://deb.debian.org/debian bookworm/main amd64 libprotobuf-lite32 amd64 3.21.12-3 [261 kB]
Get:17 http://deb.debian.org/debian bookworm/main amd64 libprotobuf-dev amd64 3.21.12-3 [1283 kB]
Get:18 http://deb.debian.org/debian bookworm/main amd64 libprotoc32 amd64 3.21.12-3 [829 kB]
Get:19 http://deb.debian.org/debian bookworm/main amd64 libxau6 amd64 1:1.0.9-1 [19.7 kB]
Get:20 http://deb.debian.org/debian bookworm/main amd64 libxdmcp6 amd64 1:1.1.2-3 [26.3 kB]
Get:21 http://deb.debian.org/debian bookworm/main amd64 libxcb1 amd64 1.15-1 [144 kB]
Get:22 http://deb.debian.org/debian bookworm/main amd64 libx11-data all 2:1.8.4-2+deb12u2 [292 kB]
Get:23 http://deb.debian.org/debian bookworm/main amd64 libx11-6 amd64 2:1.8.4-2+deb12u2 [760 kB]
Get:24 http://deb.debian.org/debian bookworm/main amd64 libxext6 amd64 2:1.3.4-1+b1 [52.9 kB]
Get:25 http://deb.debian.org/debian bookworm/main amd64 libxmuu1 amd64 2:1.1.3-3 [23.9 kB]
Get:26 http://deb.debian.org/debian bookworm/main amd64 openssl amd64 3.0.17-1~deb12u2 [1430 kB]
Get:27 http://deb.debian.org/debian bookworm/main amd64 protobuf-compiler amd64 3.21.12-3 [83.9 kB]
Get:28 http://deb.debian.org/debian bookworm/main amd64 xauth amd64 1:1.1.2-1 [36.0 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 21.0 MB in 2s (8790 kB/s)
Selecting previously unselected package less.
(Reading database ... 14167 files and directories currently installed.)
Preparing to unpack .../00-less_590-2.1~deb12u2_amd64.deb ...
Unpacking less (590-2.1~deb12u2) ...
Selecting previously unselected package libbsd0:amd64.
Preparing to unpack .../01-libbsd0_0.11.7-2_amd64.deb ...
Unpacking libbsd0:amd64 (0.11.7-2) ...
Selecting previously unselected package libedit2:amd64.
Preparing to unpack .../02-libedit2_3.1-20221030-2_amd64.deb ...
Unpacking libedit2:amd64 (3.1-20221030-2) ...
Selecting previously unselected package libcbor0.8:amd64.
Preparing to unpack .../03-libcbor0.8_0.8.0-2+b1_amd64.deb ...
Unpacking libcbor0.8:amd64 (0.8.0-2+b1) ...
Preparing to unpack .../04-libssl3_3.0.17-1~deb12u2_amd64.deb ...
Unpacking libssl3:amd64 (3.0.17-1~deb12u2) over (3.0.11-1~deb12u2) ...
Selecting previously unselected package libfido2-1:amd64.
Preparing to unpack .../05-libfido2-1_1.12.0-2+b1_amd64.deb ...
Unpacking libfido2-1:amd64 (1.12.0-2+b1) ...
Selecting previously unselected package openssh-client.
Preparing to unpack .../06-openssh-client_1%3a9.2p1-2+deb12u7_amd64.deb ...
Unpacking openssh-client (1:9.2p1-2+deb12u7) ...
Preparing to unpack .../07-curl_7.88.1-10+deb12u14_amd64.deb ...
Unpacking curl (7.88.1-10+deb12u14) over (7.88.1-10+deb12u4) ...
Preparing to unpack .../08-libcurl4_7.88.1-10+deb12u14_amd64.deb ...
Unpacking libcurl4:amd64 (7.88.1-10+deb12u14) over (7.88.1-10+deb12u4) ...
Selecting previously unselected package libcurl3-gnutls:amd64.
Preparing to unpack .../09-libcurl3-gnutls_7.88.1-10+deb12u14_amd64.deb ...
Unpacking libcurl3-gnutls:amd64 (7.88.1-10+deb12u14) ...
Selecting previously unselected package liberror-perl.
Preparing to unpack .../10-liberror-perl_0.17029-2_all.deb ...
Unpacking liberror-perl (0.17029-2) ...
Selecting previously unselected package git-man.
Preparing to unpack .../11-git-man_1%3a2.39.5-0+deb12u2_all.deb ...
Unpacking git-man (1:2.39.5-0+deb12u2) ...
Selecting previously unselected package git.
Preparing to unpack .../12-git_1%3a2.39.5-0+deb12u2_amd64.deb ...
Unpacking git (1:2.39.5-0+deb12u2) ...
Selecting previously unselected package zlib1g-dev:amd64.
Preparing to unpack .../13-zlib1g-dev_1%3a1.2.13.dfsg-1_amd64.deb ...
Unpacking zlib1g-dev:amd64 (1:1.2.13.dfsg-1) ...
Selecting previously unselected package libprotobuf32:amd64.
Preparing to unpack .../14-libprotobuf32_3.21.12-3_amd64.deb ...
Unpacking libprotobuf32:amd64 (3.21.12-3) ...
Selecting previously unselected package libprotobuf-lite32:amd64.
Preparing to unpack .../15-libprotobuf-lite32_3.21.12-3_amd64.deb ...
Unpacking libprotobuf-lite32:amd64 (3.21.12-3) ...
Selecting previously unselected package libprotobuf-dev:amd64.
Preparing to unpack .../16-libprotobuf-dev_3.21.12-3_amd64.deb ...
Unpacking libprotobuf-dev:amd64 (3.21.12-3) ...
Selecting previously unselected package libprotoc32:amd64.
Preparing to unpack .../17-libprotoc32_3.21.12-3_amd64.deb ...
Unpacking libprotoc32:amd64 (3.21.12-3) ...
Selecting previously unselected package libxau6:amd64.
Preparing to unpack .../18-libxau6_1%3a1.0.9-1_amd64.deb ...
Unpacking libxau6:amd64 (1:1.0.9-1) ...
Selecting previously unselected package libxdmcp6:amd64.
Preparing to unpack .../19-libxdmcp6_1%3a1.1.2-3_amd64.deb ...
Unpacking libxdmcp6:amd64 (1:1.1.2-3) ...
Selecting previously unselected package libxcb1:amd64.
Preparing to unpack .../20-libxcb1_1.15-1_amd64.deb ...
Unpacking libxcb1:amd64 (1.15-1) ...
Selecting previously unselected package libx11-data.
Preparing to unpack .../21-libx11-data_2%3a1.8.4-2+deb12u2_all.deb ...
Unpacking libx11-data (2:1.8.4-2+deb12u2) ...
Selecting previously unselected package libx11-6:amd64.
Preparing to unpack .../22-libx11-6_2%3a1.8.4-2+deb12u2_amd64.deb ...
Unpacking libx11-6:amd64 (2:1.8.4-2+deb12u2) ...
Selecting previously unselected package libxext6:amd64.
Preparing to unpack .../23-libxext6_2%3a1.3.4-1+b1_amd64.deb ...
Unpacking libxext6:amd64 (2:1.3.4-1+b1) ...
Selecting previously unselected package libxmuu1:amd64.
Preparing to unpack .../24-libxmuu1_2%3a1.1.3-3_amd64.deb ...
Unpacking libxmuu1:amd64 (2:1.1.3-3) ...
Preparing to unpack .../25-openssl_3.0.17-1~deb12u2_amd64.deb ...
Unpacking openssl (3.0.17-1~deb12u2) over (3.0.11-1~deb12u2) ...
Selecting previously unselected package protobuf-compiler.
Preparing to unpack .../26-protobuf-compiler_3.21.12-3_amd64.deb ...
Unpacking protobuf-compiler (3.21.12-3) ...
Selecting previously unselected package xauth.
Preparing to unpack .../27-xauth_1%3a1.1.2-1_amd64.deb ...
Unpacking xauth (1:1.1.2-1) ...
Setting up libxau6:amd64 (1:1.0.9-1) ...
Setting up libcbor0.8:amd64 (0.8.0-2+b1) ...
Setting up libssl3:amd64 (3.0.17-1~deb12u2) ...
Setting up less (590-2.1~deb12u2) ...
Setting up libcurl3-gnutls:amd64 (7.88.1-10+deb12u14) ...
Setting up liberror-perl (0.17029-2) ...
Setting up libx11-data (2:1.8.4-2+deb12u2) ...
Setting up zlib1g-dev:amd64 (1:1.2.13.dfsg-1) ...
Setting up libprotobuf32:amd64 (3.21.12-3) ...
Setting up libprotobuf-lite32:amd64 (3.21.12-3) ...
Setting up libcurl4:amd64 (7.88.1-10+deb12u14) ...
Setting up git-man (1:2.39.5-0+deb12u2) ...
Setting up curl (7.88.1-10+deb12u14) ...
Setting up libfido2-1:amd64 (1.12.0-2+b1) ...
Setting up openssl (3.0.17-1~deb12u2) ...
Setting up libbsd0:amd64 (0.11.7-2) ...
Setting up libprotoc32:amd64 (3.21.12-3) ...
Setting up libxdmcp6:amd64 (1:1.1.2-3) ...
Setting up libxcb1:amd64 (1.15-1) ...
Setting up protobuf-compiler (3.21.12-3) ...
Setting up libedit2:amd64 (3.1-20221030-2) ...
Setting up libprotobuf-dev:amd64 (3.21.12-3) ...
Setting up git (1:2.39.5-0+deb12u2) ...
Setting up libx11-6:amd64 (2:1.8.4-2+deb12u2) ...
Setting up libxmuu1:amd64 (2:1.1.3-3) ...
Setting up openssh-client (1:9.2p1-2+deb12u7) ...
Setting up libxext6:amd64 (2:1.3.4-1+b1) ...
Setting up xauth (1:1.1.2-1) ...
Processing triggers for libc-bin (2.36-9+deb12u3) ...
---> Removed intermediate container 5e14bd554c94
---> df785a641288
Step 8/10 : RUN composer require google/protobuf
---> Running in e2a1840800b5
The repository at "/var/www/html" does not have the correct ownership and git refuses to use it:
fatal: detected dubious ownership in repository at '/var/www/html'
To add an exception for this directory, call:
git config --global --add safe.directory /var/www/html
./composer.json has been created
The repository at "/var/www/html" does not have the correct ownership and git refuses to use it:
fatal: detected dubious ownership in repository at '/var/www/html'
To add an exception for this directory, call:
git config --global --add safe.directory /var/www/html
Running composer update google/protobuf
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
- Locking google/protobuf (v4.32.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
Failed to download google/protobuf from dist: The zip extension and unzip/7z commands are both missing, skipping.
The php.ini used by your command-line PHP is: /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
Now trying to download from source
- Syncing google/protobuf (v4.32.1) into cache
- Installing google/protobuf (v4.32.1): Cloning c4ed1c1f9b from cache
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
No security vulnerability advisories found.
Using version ^4.32 for google/protobuf
---> Removed intermediate container e2a1840800b5
---> 70398573c8b9
Step 9/10 : RUN protoc --php_out=proto/php/ --proto_path=proto/prototypes/ $(find proto/prototypes/ -type f)
---> Running in e3920428fb81
---> Removed intermediate container e3920428fb81
---> 6ae6367dd605
Step 10/10 : CMD apachectl -D FOREGROUND
---> Running in 15b15ffbe82c
---> Removed intermediate container 15b15ffbe82c
---> da74d9b740d0
Successfully built da74d9b740d0
Successfully tagged youtube_operational_api:latest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Sat Sep 20 21:33:14.306587 2025] [mpm_prefork:notice] [pid 9] AH00163: Apache/2.4.57 (Debian) PHP/8.3.0 configured -- resuming normal operations
[Sat Sep 20 21:33:14.306722 2025] [core:notice] [pid 9] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
curl -s http://localhost:8080 | grep 'This instance'
<br/><br/>This instance (my instance) uses version: <a href="https://github.com/Benjamin-Loison/YouTube-operational-API/commit/0d2768a5fcf560288eb3a9fa573056bdd5dba3d2
Of course, but it's not right to simply say, "I run a command, it's the same thing." This is definitely not a healthy way to manage dozens, even hundreds, of different systems with the same architecture. Will I include the server in every image creation process to connect this project to Kubernetes? So, what do we need to do for a serverless architecture?