I'm trying to push my own Docker image for an Angular 5 project that I've built. My docker image extends the well known node:carbon image and runs the following commands:
FROM node:carbon
WORKDIR /usr/src/app
COPY package.json .
COPY package-lock.json .
RUN npm install --no-optional
COPY . .
EXPOSE 8080
CMD ["npm", "start"]
The package.json file has the following content:
{
"name": "turist-front",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"#agm/core": "^1.0.0-beta.2",
"#angular-devkit/core": "^0.3.1",
"#angular/animations": "^5.0.5",
"#angular/cdk": "^5.0.0-rc.2",
"#angular/common": "^5.0.0",
"#angular/compiler": "^5.0.0",
"#angular/core": "^5.0.0",
"#angular/flex-layout": "^2.0.0-beta.11",
"#angular/forms": "^5.0.0",
"#angular/http": "^5.0.0",
"#angular/material": "^5.0.0-rc.2",
"#angular/platform-browser": "^5.0.0",
"#angular/platform-browser-dynamic": "^5.0.0",
"#angular/router": "^5.0.0",
"#ngx-translate/http-loader": "^2.0.0",
"#swimlane/ngx-datatable": "^11.1.5",
"angular-l10n": "^4.1.2",
"angular2-notifications": "^0.9.6",
"core-js": "^2.4.1",
"d3": "^4.11.0",
"hammerjs": "^2.0.8",
"material-design-icons": "^3.0.1",
"ng2-dragula": "^1.5.0",
"ngx-auth": "^3.0.0",
"ngx-dropzone-wrapper": "^5.2.0",
"ngx-perfect-scrollbar": "^5.0.1",
"ngx-quill": "^2.0.3",
"normalize.css": "^7.0.0",
"rxjs": "5.5.2",
"screenfull": "^3.3.2",
"zone.js": "^0.8.14"
},
"devDependencies": {
"#angular/cli": "1.5.5",
"#angular/compiler-cli": "^5.0.0",
"#angular/language-service": "^5.0.0",
"#compodoc/compodoc": "^1.0.4",
"#types/jasmine": "~2.5.53",
"#types/jasminewd2": "~2.0.2",
"#types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"hads": "^1.5.0",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~3.2.0",
"tslint": "~5.7.0",
"typescript": "~2.4.2"
}
}
After I've built my image I want to push it to my docker repository. But although I've tried at least 5 times to execute the docker push command, every time it fails with the error file integrity checksum failed for. It is not always the same file that fails the integrity check and I also didn't notice any timeout behaviour or something similar.
What I have noticed is that the one layer (always the same) fails being pushed and it restarts 5-6 times unsuccessful:
cc19355015b5: Pushing [=======> ] 98.66MB/653.4MB
and than
cc19355015b5: Pushing [=======> ] Retrying in 5 seconds
I had the same issue today, then I found a typo in my ECR location, once it is corrected, the push succeeded immediately, so I believe Docker just doesn't tell you that it can't find the ECR repo and stuck in retrying.
Another way to solve this is to reduce the amount of data that are sent at a time to the registry, by breaking up the layers or using a tool like regclient that falls back to sending 1MB chunks by default if larger chunks don't succeed at first.
The steps are:
Download regctl
Save the image as a tar file
Push it to the registry using regctl
curl -L https://github.com/regclient/regclient/releases/latest/download/regctl-linux-amd64 > regctl
chmod 755 regctl
docker save <imagename> > image.tar
./regctl image import <imagename> image.tar -v debug
The chunk size can be configured. See this answer for more in-depth details.
Related
I made a simple media player app with electronjs to play video files and display subtitles.
When in dev or packaged mode on my PC, it plays the video fine.
When I use the same packaged app on a laptop, PC or even inside a VM (both Windows 10 or 11), the video plays but only sound and subtitles, no image.
How do I go to debug/figure what's the issue? I read that Chromium 108 is meant to support H265. And it's working fine on my machine. Would there be a codec available on my machine which am unaware of? Or is electron-builder not including the latest version of Chromium?
below is my current package.json
"scripts": {
"dev": "vite",
"build": "vite build && electron-builder",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src",
"format": "prettier . --write",
"release": "node release.mjs"
},
"dependencies": {
"electron-log": "^4.4.8",
"electron-updater": "^5.3.0",
"ffmpeg": "^0.0.4",
"fs-extra": "^11.1.0",
"mime-types": "^2.1.35",
"mkv-subtitle-extractor": "^1.1.1",
"srt-to-vtt": "^1.1.3"
},
"devDependencies": {
"#vitejs/plugin-vue": "^3.2.0",
"autoprefixer": "^10.4.13",
"chalk": "^5.2.0",
"cross-env": "^7.0.3",
"electron": "^23.0.0-alpha.3",
"electron-builder": "^23.5.1",
"eslint": "^8.29.0",
"eslint-config-prettier": "^8.5.0",
"eslint-config-standard": "^17.0.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-json": "^3.1.0",
"eslint-plugin-n": "^15.6.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-vue": "^9.8.0",
"inquirer": "^9.1.4",
"postcss": "^8.4.20",
"prettier": "^2.8.0",
"tailwindcss": "^3.2.4",
"vite": "^3.2.3",
"vite-plugin-electron": "^0.10.4",
"vite-plugin-eslint": "^1.8.1",
"vue": "^3.2.41"
}
I'm receiving the following error when running react native app using expo on IPhone (on android it's working correctly)
An image of the error is attached.
In addition, this is my package.json file:
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"#expo/vector-icons": "^12.0.4",
"#react-native-community/masked-view": "^0.1.10",
"axios": "^0.21.1",
"expo": "~40.0.0",
"expo-app-loading": "^1.0.1",
"expo-font": "^9.0.0",
"expo-status-bar": "~1.0.3",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
"react-native-gesture-handler": "^1.10.3",
"react-native-reanimated": "^2.0.1",
"react-native-safe-area-context": "3.1.9",
"react-native-screens": "^2.18.1",
"react-native-web": "~0.13.12",
"react-navigation": "^4.4.4",
"react-navigation-header-buttons": "^7.0.0",
"react-navigation-stack": "^2.10.4",
"react-redux": "^7.2.3",
"redux": "^4.0.5"
},
"devDependencies": {
"#babel/core": "^7.9.0" },
"private": true
}
Any idea will be appreciated.
you have two versions of react-native-safe-area-context installed in your app. remove react-native-safe-area-context from your dependencies and run expo install react-native-safe-area-context
In this link you can find the solution approved by a collaborator.
In my case, problem persisted and I did as suggested in the link above but I skip steps 2 and 5. I kept expo version in 4.1.0.
delete node_modules and your lockfile (package-lock.json /
yarn.lock)
change the expo package version in package.json to 38.0.8
remove react-native-safe-area-context from your package.json
run yarn or npm install
run expo install react-native-safe-area-context
try running
cd ios && pod install
I am new to Angular and taking baby step to implement in ASP.Net MVC project. I downloaded the Angular quick start from github and latest typescript v 3.2.2.0 for visual studio 2015 update 3. I am getting the following error Property lift in the type 'Subject is not assignable tot he same property in base type Observable' .
other version used:
npm -v is 6.4.1
node -v is 10.15.2
The package.json that I downloaded from github had a reference to the older version version. Attached is the package.json file i am using.
I have my npm running and was able to host the website through lift-server.
error TS2416: Property 'lift' in type 'Subject' is not assignable
to the same property in base type 'Observable'. Type '(operator:
Operator) => Observable' is not assignable to type
'(operator: Operator) => Observable'. Type 'Observable'
is not assignable to type 'Observable'. Type 'T' is not assignable
to type 'R'
Please help.
Error snippet
{
"name": "angular-quickstart",
"version": "1.0.0",
"description": "QuickStart package.json from the documentation, supplemented with testing support",
"scripts": {
"build": "tsc -p src/",
"build:watch": "tsc -p src/ -w",
"build:e2e": "tsc -p e2e/",
"serve": "lite-server -c=bs-config.json",
"serve:e2e": "lite-server -c=bs-config.e2e.json",
"prestart": "npm run build",
"start": "concurrently \"npm run build:watch\" \"npm run serve\"",
"pree2e": "npm run build:e2e",
"e2e": "concurrently \"npm run serve:e2e\" \"npm run protractor\" --kill-others --success first",
"preprotractor": "webdriver-manager update",
"protractor": "protractor protractor.config.js",
"pretest": "npm run build",
"test": "concurrently \"npm run build:watch\" \"karma start karma.conf.js\"",
"pretest:once": "npm run build",
"test:once": "karma start karma.conf.js --single-run",
"lint": "tslint ./src/**/*.ts -t verbose"
},
"keywords": [],
"author": "",
"license": "MIT",
"dependencies": {
"#angular/common": "~4.3.4",
"#angular/compiler": "~4.3.4",
"#angular/core": "~4.3.4",
"#angular/forms": "~4.3.4",
"#angular/http": "~4.3.4",
"#angular/platform-browser": "~4.3.4",
"#angular/platform-browser-dynamic": "~4.3.4",
"#angular/router": "~4.3.4",
"angular-in-memory-web-api": "~0.3.0",
"systemjs": "0.19.40",
"core-js": "^2.4.1",
"rxjs": "5.0.1",
"zone.js": "^0.8.4"
},
"devDependencies": {
"concurrently": "^3.2.0",
"lite-server": "^2.2.2",
"typescript": "~2.1.0",
"canonical-path": "0.0.2",
"tslint": "^3.15.1",
"lodash": "^4.16.4",
"jasmine-core": "~2.4.1",
"karma": "^1.3.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~4.0.14",
"rimraf": "^2.5.4",
"#types/node": "^6.0.46",
"#types/jasmine": "2.5.36"
},
"repository": {}
}
Try to upgrade with:
npm install --save rxjs#^6.4.0
this issue should have been fixed in RxJS 6.
There are a couple things wrong here.
First, your Typescript is on the latest version. I'm not sure even Angular 7 supports Typescript 3.2.2. I think they will when Angular 8 is released shortly.
Second, your Angular packages are way out of date. You should update to Angular 7 if possible.
Third, Visual Studio can sometimes get picky about your ts config. If the above two don't work please post your ts config so we can look at it. I build Angular Applications from the Web Form template in VS 2017. I use the Angular CLI instead of any VS Extension. If you want more details let me know.
Here's a package.json from a project I started recently:
"private": true,
"dependencies": {
"#angular/animations": "~7.1.0",
"#angular/common": "~7.1.0",
"#angular/compiler": "~7.1.0",
"#angular/core": "~7.1.0",
"#angular/forms": "~7.1.0",
"#angular/platform-browser": "~7.1.0",
"#angular/platform-browser-dynamic": "~7.1.0",
"#angular/router": "~7.1.0",
"classlist.js": "^1.1.20150312",
"core-js": "^2.5.4",
"d3": "^4.10.2",
"d3-array": "^1.2.1",
"d3-brush": "^1.0.4",
"d3-color": "^1.0.3",
"d3-force": "^1.1.0",
"d3-format": "^1.2.0",
"d3-hierarchy": "^1.1.5",
"d3-interpolate": "^1.1.5",
"d3-scale": "^1.0.6",
"d3-selection": "^1.1.0",
"d3-shape": "^1.2.0",
"d3-time-format": "^2.1.0",
"rxjs": "~6.3.3",
"tslib": "^1.9.0",
"web-animations-js": "^2.3.1",
"zone.js": "~0.8.26",
"bootstrap": "4.3.1"
},
"devDependencies": {
"#angular-devkit/build-angular": "~0.11.0",
"#angular-devkit/build-ng-packagr": "~0.11.0",
"#angular/cli": "~7.1.3",
"#angular/compiler-cli": "~7.1.0",
"#angular/language-service": "~7.1.0",
"#types/node": "~8.9.4",
"#types/jasmine": "~2.8.8",
"#types/jasminewd2": "~2.0.3",
"codelyzer": "~4.5.0",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.1.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"ng-packagr": "^4.2.0",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tsickle": ">=0.29.0",
"tslib": "^1.9.0",
"tslint": "~5.11.0",
"typescript": "~3.1.6"
}
}
I've tested my Angular 5 app on an iPhone 6 running IOS8 (Safari) and in Browserstack. The angular app doesn't run, I just get an empty page and this Javascript error.
Any suggestions?
This is my package.json file. I'm thinking that some package that I added here is causing some conflict and preventing the app from displaying. Previously I had the app able to run in IOS8, but that was with Angular 4.4 and I wasn't using mdbootstrap library.
{
"name": "XXXX",
"version": "1.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"i18n": "ng-xi18n"
},
"private": true,
"dependencies": {
"#agm/core": "^1.0.0-beta.2",
"#angular-devkit/schematics": "0.0.34",
"#angular/animations": "^5.0.3",
"#angular/common": "^5.0.3",
"#angular/compiler": "^5.0.3",
"#angular/core": "^5.0.3",
"#angular/forms": "^5.0.3",
"#angular/http": "^5.0.3",
"#angular/platform-browser": "^5.0.3",
"#angular/platform-browser-dynamic": "^5.0.3",
"#angular/router": "^5.0.3",
"applicationinsights-js": "^1.0.8",
"bootstrap": "^3.3.7",
"bootstrap-select": "^1.12.4",
"chart.js": "^2.5.0",
"core-js": "^2.4.1",
"easy-pie-chart": "^2.1.7",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
"jquery": "^3.2.1",
"libphonenumber-js": "^0.4.40",
"ng-autosize": "^1.1.0",
"ng-mdb-pro": "XXXX",
"npm-check-updates": "^2.13.0",
"rxjs": "^5.4.2",
"screenfull": "^3.3.0",
"zone.js": "^0.8.14"
},
"devDependencies": {
"#angular/cli": "^1.5.5",
"#angular/compiler-cli": "^5.0.3",
"#angular/language-service": "^4.3.0",
"#types/applicationinsights-js": "^1.0.2",
"#types/jasmine": "~2.8.2",
"#types/jasminewd2": "~2.0.2",
"#types/node": "~6.0.60",
"codelyzer": "~4.0.1",
"jasmine-core": "^2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.2.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-junit-reporter": "^1.2.0",
"protractor": "~5.2.0",
"ts-node": "~3.3.0",
"tslint": "^5.3.2",
"typescript": ">=2.4.2 <2.5.0"
}
}
Had a similar problem. It should be resolved by providing correct polyfills.
you can find browser support info here https://angular.io/guide/browser-support
If you use JIT compiler (not AOT) then safari needs at least ES7 reflect polyfill.
Safari 7 & 8 need also ES6
If you still use the old intl based pipes then do not forget to include them.
For older browsers core-js/es/... imports usually resolve the issues.
Go to your src/polyfills.ts and enable desired polyfills.
There is also a fetch polyfill mentioned in the readme of the generated project, that is not included in polyfill.ts.
import 'whatwg-fetch'; // Run `npm install --save whatwg-fetch`
$ ng build --mangle safari10=true --prod
Follow the next steps
Execute command to generate file .browserslistrc
npx browserslist
Into the file set the last version until you get that you need, in my case I need work with safari 10, then i set the file ".browserslistrc" :
last 2 Chrome version
last 2 Firefox version
last 2 Edge major versions
last 5 Safari major versions
last 5 iOS major versions
ERROR:Cannot start service cpanel_client: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused "exec: \"sudo\": executable file not found
Here is my docker file,
FROM node:8.1.2-alpine
WORKDIR /control-panel
COPY package.json /control-panel/package.json
RUN npm install auth0-lock mapbox-gl mapbox-gl-geocoder tinymce angular2-jwt aws-sdk #angular/cli hammerjs jquery moment moment-timezone bootstrap#3 jquery-ui-dist --save
RUN mv /control-panel/node_modules /node_modules
COPY . /control-panel
EXPOSE 4200
EXPOSE 49153
here is the docker compose.yml,
cpanel_client:
build: .
ports:
- "4200:4200"
- "49153:49153"
volumes:
- .:/control-panel
command: npm start
my package.json file,
{
"name": "cpanelcli",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"ng": "ng",
"start": "ng serve --host 0.0.0.0",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor"
},
"private": true,
"dependencies": {
"#angular/common": "4.0.0",
"#angular/compiler": "4.0.0",
"#angular/core": "4.0.0",
"#angular/forms": "4.0.0",
"#angular/http": "4.0.0",
"#angular/material": "^2.0.0-beta.2",
"#angular/platform-browser": "4.0.0",
"#angular/platform-browser-dynamic": "4.0.0",
"#angular/router": "^3.3.1",
"#types/jquery": "^2.0.46",
"angular2-jwt": "^0.1.28",
"aws-sdk": "^2.28.0",
"bootstrap": "^3.3.7",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"jquery": "^3.2.1",
"jquery-ui-dist": "^1.12.1",
"mapbox-gl": "^0.34.0",
"mapbox-gl-geocoder": "^2.0.1",
"mapbox.js": "^3.0.1",
"ng2-datepicker": "^1.8.0",
"rxjs": "^5.0.1",
"tinymce": "^4.5.5",
"ts-helpers": "^1.1.1",
"zone.js": "^0.7.2"
},
"devDependencies": {
"#angular/compiler-cli": "^2.3.1",
"#types/jasmine": "2.5.38",
"#types/node": "^6.0.42",
"angular-cli": "1.0.0-beta.24",
"codelyzer": "~2.0.0-beta.1",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"protractor": "~4.0.13",
"ts-node": "1.2.1",
"tslint": "^4.0.2",
"typescript": "~2.0.3"
}
}
Build was successful. I get this errror when i run docker-compose run –rm cpanel_client ng init –skip-npm –name CliDemo.
can someone tell me where am i wrong?
The node_modules/.bin folder is not in $PATH by default. You need to just call the path directly:
command: /control-panel/node_modules/.bin/ng serve --host 0.0.0.0
It appears sudo is not installed on your image. Note the error message:
"exec: \"sudo\": executable file not found
Something is trying to sudo ("super-user do") a thing, and can't. Try installing sudo via the package manager to appease that step, or try configuring that step to not require super user permissions.