Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade base image to phusion/baseimage:noble-1.0.0 #413

Closed
Closed
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
## 3.1.0 (release date: TBD)
* Upgraded image base to phusion/baseimage:noble-1.0.0
* Upgraded to Ubuntu 24.04 LTS (Noble)
- note updated compiler chain and all tools; please test your apps thoroughly
* Default Python version is now 3.12 (from 3.10)
* Python 2.7 and 3.7 are no longer available from the Deadsnakes PPA; we weren't providing images for either previously
* Nginx version is now 1.24 (from 1.18)
- changelog can be found at https://nginx.org/en/CHANGES-1.24
- if you provide your own nginx.conf, please define error_log at the root scope, not the http scope; see https://github.com/phusion/passenger/issues/2541
- a number of modules are no longer installed and enabled by default (mod-http-geoip2, mod-http-image-filter, mod-http-xslt-filter, mod-mail, mod-stream, mod-stream-geoip2)
* Redis version is now 7.0.15 (from 6.0.16)

## 3.0.8 (release date: TBD)
* Upgraded to Ruby 3.3.5
* Added a Python 3.13 image
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ build_%: build_base
@if [ "${*}" == "full" ]; then \
for i in ${CRUBY_IMAGES}; do echo "$${i}=1" >> ${*}_image/buildconfig; done; \
for i in ${MISC_IMAGES}; do echo "$${i}=1" >> ${*}_image/buildconfig; done; \
echo python310=1 >> ${*}_image/buildconfig; \
echo python312=1 >> ${*}_image/buildconfig; \
echo redis=1 >> ${*}_image/buildconfig; \
echo memcached=1 >> ${*}_image/buildconfig; \
fi
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ Why use passenger-docker instead of doing everything yourself in Dockerfile?

Basics (learn more at [baseimage-docker](http://phusion.github.io/baseimage-docker/)):

* Ubuntu 22.04 LTS as base system.
* Ubuntu 24.04 LTS as base system.
* A **correct** init process ([learn more](http://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/)).
* Fixes APT incompatibilities with Docker.
* syslog-ng.
Expand All @@ -99,13 +99,13 @@ Language support:
* 3.3.5 is configured as the default.
* JRuby is installed from source, but we register an APT entry for it.
* JRuby uses OpenJDK 17.
* Python 2.7 or 3.10, or any version provided by the Deadsnakes PPA (currently 3.7, 3.8, 3.9, 3.11, 3.12, and 3.13; see https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa).
* Node.js 18 by default, or any version provided by Nodesource (currently 16, 18, 20, 21; see https://github.com/nodesource/distributions).
* Python 3.12, or any version provided by the Deadsnakes PPA (currently 3.8, 3.9, 3.10, and 3.11; see https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa).
* Node.js 20 by default, or any version provided by Nodesource (currently 18, 20, 21, 22; see https://github.com/nodesource/distributions).
* A build system, git, and development headers for many popular libraries, so that the most popular Ruby, Python and Node.js native extensions can be compiled without problems.

Web server and application server:

* Nginx 1.18. Disabled by default.
* Nginx 1.24. Disabled by default.
* [Phusion Passenger 6](https://www.phusionpassenger.com/). Disabled by default (because it starts along with Nginx).
* This is a fast and lightweight tool for simplifying web application integration into Nginx.
* It adds many production-grade features, such as process monitoring, administration and status inspection.
Expand All @@ -114,7 +114,7 @@ Web server and application server:

Auxiliary services and tools:

* Redis 6.0. Not installed by default.
* Redis 7.0. Not installed by default.
* Memcached. Not installed by default.

<a name="memory_efficiency"></a>
Expand Down Expand Up @@ -220,7 +220,7 @@ CMD ["/sbin/my_init"]
#RUN /pd_build/jruby-9.4.*.sh
#
# Python support
#RUN /pd_build/python.sh 3.10
#RUN /pd_build/python.sh 3.12

# ...put your own build instructions here...

Expand Down Expand Up @@ -281,7 +281,7 @@ server {

# For Python ie. Django
passenger_app_type wsgi;
passenger_startup_file passenger_wsgi.py; (contents example: https://gist.github.com/ajhodgson/96c51dba349697e5c7e46027cc530434)
passenger_startup_file passenger_wsgi.py; # (contents example: https://gist.github.com/ajhodgson/96c51dba349697e5c7e46027cc530434)

# For Node.js
passenger_app_type node;
Expand Down Expand Up @@ -521,7 +521,7 @@ The following example shows how you can add a startup script. This script simply
<a name="upgrading_os"></a>
### Upgrading the operating system inside the container

passenger-docker images contain an Ubuntu 22.04 operating system. You may want to update this OS from time to time, for example to pull in the latest security updates. OpenSSL is a notorious example. Vulnerabilities are discovered in OpenSSL on a regular basis, so you should keep OpenSSL up-to-date as much as you can.
passenger-docker images contain an Ubuntu 24.04 operating system. You may want to update this OS from time to time, for example to pull in the latest security updates. OpenSSL is a notorious example. Vulnerabilities are discovered in OpenSSL on a regular basis, so you should keep OpenSSL up-to-date as much as you can.

While we release passenger-docker images with the latest OS updates from time to time, you do not have to rely on us. You can update the OS inside passenger-docker images yourself, and it is recommend that you do this instead of waiting for us. This is also especially important to upgrade any installed Python or Node packages to the latest minor version.

Expand Down
1 change: 1 addition & 0 deletions image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ MAINTAINER Phusion <[email protected]>
ADD . /pd_build

ARG ARCH
ARG http_proxy
RUN --mount=type=cache,target=/build_cache \
/usr/bin/nice /pd_build/install_image.sh

Expand Down
3 changes: 2 additions & 1 deletion image/Dockerfile.base
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# syntax=docker/dockerfile:1.2
FROM phusion/baseimage:jammy-1.0.4
FROM phusion/baseimage:noble-1.0.0
MAINTAINER Phusion <[email protected]>

ADD . /pd_build

ARG ARCH
ARG http_proxy
RUN --mount=type=cache,target=/build_cache \
rm -rf "/build_cache/${ARCH}" && \
/usr/bin/nice /pd_build/install_base.sh && \
Expand Down
9 changes: 7 additions & 2 deletions image/config/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@ worker_processes auto;
pid /run/nginx.pid;
daemon off;

##
# Error logs
##

error_log /var/log/nginx/error.log;

include /etc/nginx/main.d/*.conf;
include /etc/nginx/modules-enabled/*.conf;

Expand Down Expand Up @@ -38,11 +44,10 @@ http {
ssl_prefer_server_ciphers on;

##
# Logging Settings
# Access logs
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it falling back to STDOUT by default ? why this change?

Copy link
Contributor Author

@ajhodgson ajhodgson Aug 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It still sets error_log /var/log/nginx/error.log; - it just does it at the root scope now.

You can look at phusion/passenger#2541 for why.

There is no change in behaviour here.


##
# Gzip Settings
Expand Down
Loading
Loading