@@ -5,7 +5,6 @@ const { readFileSync, writeFileSync } = require('fs');
55const { getAllDockerfiles, getDockerfileNodeVersion } = require ( './utils' ) ;
66
77const releaseUrl = 'https://nodejs.org/dist/index.json' ;
8- const yarnVersionUrl = 'https://classic.yarnpkg.com/latest-version' ;
98
109const templates = Object . freeze ( {
1110 alpine : 1 ,
@@ -121,25 +120,23 @@ const getBaseImage = ({ template, variant }) => {
121120
122121const formatKeys = ( keys ) => keys . map ( ( key ) => `$1${ key } \\` ) . join ( '\n' ) ;
123122
124- const formatTemplate = ( yarnVersion , nodeKeys , yarnKeys , muslChecksum , base , metadata ) => {
123+ const formatTemplate = ( nodeKeys , muslChecksum , base , metadata ) => {
125124 const { latestVersion, template, nodeMajorVersion } = metadata ;
126125 const baseImage = getBaseImage ( metadata ) ;
127- const initialFormat = base . replace ( / ^ F R O M .+ $ / m, `FROM ${ baseImage } ` )
128- . replace ( / ^ E N V N O D E _ V E R S I O N .+ $ / m, `ENV NODE_VERSION ${ latestVersion } ` )
129- . replace ( / ^ E N V Y A R N _ V E R S I O N .+ $ / m, `ENV YARN_VERSION ${ yarnVersion } ` )
126+ let initialFormat = base . replace ( / ^ F R O M .+ $ / m, `FROM ${ baseImage } ` )
127+ . replace ( / ^ E N V N O D E _ V E R S I O N = .+ $ / m, `ENV NODE_VERSION=${ latestVersion } ` )
130128 . replace ( / ^ ( \s * ) " \$ { NODE_ K E Y S \[ @ ] } " .* $ / m, formatKeys ( nodeKeys ) )
131- . replace ( / ^ ( \s * ) " \$ { YARN_ K E Y S \[ @ ] } " .* $ / m, formatKeys ( yarnKeys ) ) ;
129+
130+ if ( parseInt ( nodeMajorVersion , 10 ) >= 26 ) {
131+ initialFormat = initialFormat . replace ( / E N V Y A R N _ V E R S I O N .* \* \n / s, '' ) ;
132+ }
132133
133134 if ( template !== templates . alpine ) {
134135 return initialFormat ;
135136 }
136-
137- const pythonVersion = parseInt ( nodeMajorVersion , 10 ) < 14
138- ? 'python2'
139- : 'python3' ;
140-
141- return initialFormat . replace ( / \$ { PYTHON_ V E R S I O N } / m, pythonVersion )
142- . replace ( / C H E C K S U M = C H E C K S U M _ x 6 4 / m, `CHECKSUM="${ muslChecksum } "` ) ;
137+ else {
138+ return initialFormat . replace ( / C H E C K S U M = C H E C K S U M _ x 6 4 / m, `CHECKSUM="${ muslChecksum } "` ) ;
139+ }
143140} ;
144141
145142const fetchMuslChecksum = async ( nodeVersion ) => {
@@ -149,22 +146,20 @@ const fetchMuslChecksum = async (nodeVersion) => {
149146 return checksums . match ( / ( \S + ) \s + \S + - l i n u x - x 6 4 - m u s l .t a r .x z / m) [ 1 ] ;
150147} ;
151148
152- const updateDockerfile = async ( yarnVersion , nodeKeys , yarnKeys , metadata ) => {
149+ const updateDockerfile = async ( nodeKeys , metadata ) => {
153150 const { file, template, latestVersion } = metadata ;
154151 const base = readTemplate ( template ) ;
155152 const muslChecksum = await fetchMuslChecksum ( latestVersion ) ;
156153
157- const formatted = formatTemplate ( yarnVersion , nodeKeys , yarnKeys , muslChecksum , base , metadata ) ;
154+ const formatted = formatTemplate ( nodeKeys , muslChecksum , base , metadata ) ;
158155 writeFileSync ( file , formatted ) ;
159156} ;
160157
161158const updateDockerfiles = async ( outdated ) => {
162- const yarnVersion = await fetchText ( yarnVersionUrl ) ;
163159 const nodeKeys = getKeys ( 'node.keys' ) ;
164- const yarnKeys = getKeys ( 'yarn.keys' ) ;
165160
166161 await Promise . all (
167- outdated . map ( ( metadata ) => updateDockerfile ( yarnVersion , nodeKeys , yarnKeys , metadata ) ) ,
162+ outdated . map ( ( metadata ) => updateDockerfile ( nodeKeys , metadata ) ) ,
168163 ) ;
169164} ;
170165
0 commit comments