p238049y / beer-collection-app

ビールを飲んだ時に記録するアプリ
3 stars 0 forks source link

【改善】docker環境の構築 #101

Open p238049y opened 2 months ago

p238049y commented 2 months ago

改善内容

ex.) 〇〇という機能を実装する

  1. docker環境を構築する

どこのファイルから着手すれば良いか?

方針

ex.) datePickerを活用する。〇〇のライブラリを使用する

期待結果

ex.) 画面上にダイアログが表示されること

  1. iOS, androidの両方がビルドできることを確認する

参考文献

ex.) TextFieldで数字,英語,記号だけを入力させたい時

  1. 初心者がFlutterのDocker環境を作る
  2. Flutter開発コンテナの構築(備忘録) #Docker
  3. Flutterの備忘録
p238049y commented 2 months ago

flutter が動くかを確認

❯❯❯ flutter run
Connected devices:
macOS (desktop) • macos  • darwin-arm64   • macOS 14.4.1 23E224 darwin-arm64
Chrome (web)    • chrome • web-javascript • Google Chrome 126.0.6478.127

No wireless devices were found.

[1]: macOS (macos)
[2]: Chrome (chrome)
Please choose one (or "q" to quit): 1
Resolving dependencies... 
  archive 3.4.10 (3.6.1 available)
  collection 1.18.0 (1.19.0 available)
  cupertino_icons 1.0.6 (1.0.8 available)
  file_selector_macos 0.9.3+3 (0.9.4 available)
  flutter_launcher_icons 0.9.3 (0.13.1 available)
  flutter_lints 2.0.3 (4.0.0 available)
  flutter_native_splash 2.2.16 (2.4.0 available)
  flutter_plugin_android_lifecycle 2.0.19 (2.0.20 available)
  http_parser 4.0.2 (4.1.0 available)
  image 3.3.0 (4.2.0 available)
  image_picker 0.8.9 (1.1.2 available)
  image_picker_android 0.8.9+6 (0.8.12+3 available)
  image_picker_for_web 2.2.0 (3.0.4 available)
  image_picker_ios 0.8.9+2 (0.8.12 available)
  intl 0.18.1 (0.19.0 available)
  js 0.6.7 (0.7.1 available)
  leak_tracker 10.0.0 (10.0.5 available)
  leak_tracker_flutter_testing 2.0.1 (3.0.5 available)
  leak_tracker_testing 2.0.1 (3.0.1 available)
  lints 2.1.1 (4.0.0 available)
  material_color_utilities 0.8.0 (0.12.0 available)
  meta 1.11.0 (1.15.0 available)
  pointycastle 3.8.0 (3.9.1 available)
  sqflite 2.3.3 (2.3.3+1 available)
  test_api 0.6.1 (0.7.3 available)
  vm_service 13.0.0 (14.2.4 available)
Got dependencies!
26 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Launching lib/main.dart on macOS in debug mode...
Updating project for Xcode compatibility.
Upgrading project.pbxproj
Upgrading Runner.xcscheme
Running pod install...                                             839ms
CocoaPods' output:
↳
      Preparing

    Analyzing dependencies

    Inspecting targets to integrate
      Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

    Finding Podfile changes
      A file_selector_macos
      M sqflite
      - FlutterMacOS

    Fetching external sources
    -> Fetching podspec for `FlutterMacOS` from `Flutter/ephemeral`
    -> Fetching podspec for `file_selector_macos` from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`
    -> Fetching podspec for `sqflite` from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`

    Resolving dependencies of `Podfile`
      CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only performed in repo update
      CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only performed in repo update

    ――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

    ### Command
/usr/local/bin/pod install --verbose
```

### Report

* What did you do?

* What did you expect to happen?

* What happened instead?

### Stack

```
   CocoaPods : 1.15.2
        Ruby : ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin23]
    RubyGems : 3.0.3.1
        Host : macOS 14.4.1 (23E224)
       Xcode : 15.4 (15F31d)
         Git : git version 2.31.1
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib
Repositories : trunk - CDN - https://cdn.cocoapods.org/
```

### Plugins

```
cocoapods-deintegrate : 1.0.5
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.1
cocoapods-trunk       : 1.6.0
cocoapods-try         : 1.2.0
```

### Podfile

```ruby
platform :osx, '10.14'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_macos_podfile_setup

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_macos_build_settings(target)
  end
end
```

### Error

```
LoadError - dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/lib/ffi_c.bundle, 0x0009): tried: '/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/lib/ffi_c.bundle' (mach-o
file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')),
'/System/Volumes/Preboot/Cryptexes/OS/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/lib/ffi_c.bundle' (no such file),
'/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/lib/ffi_c.bundle' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')) -
/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/lib/ffi_c.bundle
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/lib/ffi.rb:5:in `rescue in <top (required)>'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/lib/ffi.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ethon-0.16.0/lib/ethon.rb:3:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/typhoeus-1.4.1/lib/typhoeus.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/cdn_source.rb:440:in `download_typhoeus_impl_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/cdn_source.rb:372:in `download_and_save_with_retries_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/cdn_source.rb:365:in `download_file_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/cdn_source.rb:338:in `download_file'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/cdn_source.rb:284:in `ensure_versions_file_loaded'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/cdn_source.rb:208:in `search'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/source/aggregate.rb:83:in `block in search'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/source/aggregate.rb:83:in `select'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.15.2/lib/cocoapods-core/source/aggregate.rb:83:in `search'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:416:in `create_set_from_sources'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:385:in `find_cached_set'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:360:in `specifications_for_dependency'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:165:in `search_for'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:274:in `block in sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:267:in `each'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:267:in `sort_by'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:267:in `sort_by!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:267:in `sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:60:in `block in sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:77:in `with_no_such_dependency_error_handling'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/delegates/specification_provider.rb:59:in `sort_dependencies'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:754:in `push_state_for_requirements'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:744:in `require_nested_dependencies_for'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:727:in `activate_new_spec'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:684:in `attempt_to_activate'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:254:in `process_topmost_state'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:182:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolver.rb:43:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/resolver.rb:94:in `resolve'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:1082:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:1080:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/installer/analyzer.rb:125:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:422:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:244:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:243:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/installer.rb:162:in `install!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/command/install.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.15.2/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'
```

――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

[!] Oh no, an error occurred.

Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=dlopen%28%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.16.3%2Flib%2Fffi_c.bundle%2C+0x0009%29%3A+tried%3A+%27%2FLi
brary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.16.3%2Flib%2Fffi_c.bundle%27+%28mach-o+file%2C+but+is+an+incompatible+architecture+%28have+%27x86_64%27%2C+need+%27arm64e
%27+or+%27arm64%27%29%29%2C+%27%2FSystem%2FVolumes%2FPreboot%2FCryptexes%2FOS%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.16.3%2Flib%2Fffi_c.bundle%27+%28no+such
+file%29%2C+%27%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.16.3%2Flib%2Fffi_c.bundle%27+%28mach-o+file%2C+but+is+an+incompatible+architecture+%28have+%27x86_64%
27%2C+need+%27arm64e%27+or+%27arm64%27%29%29+-+%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.16.3%2Flib%2Fffi_c.bundle&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

Don't forget to anonymize any private data!

Looking for related issues on cocoapods/cocoapods...

Error output from CocoaPods: ↳ Searching for inspections failed: undefined method `map' for nil:NilClass

Error: To set up CocoaPods for ARM macOS, run: sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc

Error: Error running pod install ~/w/beer-collection-app ❯❯❯ sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc ✘ 1 Password:

You have requested to uninstall the gem: ffi-1.16.3

ethon-0.16.0 depends on ffi (>= 1.15.0) If you remove this gem, these dependencies will not be met. Continue with Uninstall? [yN] y Successfully uninstalled ffi-1.16.3

Fetching ffi-1.17.0-x86_64-darwin.gem Successfully installed ffi-1.17.0-x86_64-darwin Parsing documentation for ffi-1.17.0-x86_64-darwin Installing ri documentation for ffi-1.17.0-x86_64-darwin Done installing documentation for ffi after 0 seconds 1 gem installed ~/w/beer-collection-app ❯❯❯ ~/w/beer-collection-app ❯❯❯



コマンドに従う

macOSにしたからか
p238049y commented 2 months ago

docker compose build を実行する

❯❯❯ docker compose build                                                                                                                            ✘ 127 
[+] Building 108.8s (16/16) FINISHED                                                                                                               docker:desktop-linux
 => [flutterdevel internal] load .dockerignore                                                                                                                     0.0s
 => => transferring context: 2B                                                                                                                                    0.0s
 => [flutterdevel internal] load build definition from Dockerfile                                                                                                  0.0s
 => => transferring dockerfile: 671B                                                                                                                               0.0s
 => [flutterdevel internal] load metadata for docker.io/library/dart:3.4-sdk                                                                                       2.7s
 => [flutterdevel auth] library/dart:pull token for registry-1.docker.io                                                                                           0.0s
 => [flutterdevel  1/11] FROM docker.io/library/dart:3.4-sdk@sha256:eccb93577e56de58ef380eeb3be7f257aa0c5f29cabd14690724980d023759e5                              12.2s
 => => resolve docker.io/library/dart:3.4-sdk@sha256:eccb93577e56de58ef380eeb3be7f257aa0c5f29cabd14690724980d023759e5                                              0.0s
 => => sha256:5f52169e09fcb6ddb67d7793bc9a75061cc2cc3eccfa429b934a14bc43b255f5 1.49MB / 1.49MB                                                                     0.5s
 => => sha256:eccb93577e56de58ef380eeb3be7f257aa0c5f29cabd14690724980d023759e5 776B / 776B                                                                         0.0s
 => => sha256:3a4535d44ac98fa06c2d4b789af2d7a0dbe08be9831ee4e42ed3da0e551193be 1.17kB / 1.17kB                                                                     0.0s
 => => sha256:af3ed47414afd593128ef9029428b5efe1a1438f0462fd4b5c0ae46d4c70e2c5 5.76kB / 5.76kB                                                                     0.0s 
 => => sha256:ea235d1ccf77ca07a545b448996766dc3eca4b971b04ba39d50af69660b25751 29.16MB / 29.16MB                                                                   1.8s 
 => => sha256:b0a0b7f1f8ca0fe8c09d0bc5498ef1174448341d579487b4ad1c3a0c1e6edeb4 54.32MB / 54.32MB                                                                   1.8s 
 => => sha256:a68320b39f05bd70aece8c6424500a4dd882c9811978e81bd8c807b3f9347305 235.84MB / 235.84MB                                                                 9.9s 
 => => extracting sha256:ea235d1ccf77ca07a545b448996766dc3eca4b971b04ba39d50af69660b25751                                                                          0.7s 
 => => extracting sha256:b0a0b7f1f8ca0fe8c09d0bc5498ef1174448341d579487b4ad1c3a0c1e6edeb4                                                                          0.8s 
 => => extracting sha256:5f52169e09fcb6ddb67d7793bc9a75061cc2cc3eccfa429b934a14bc43b255f5                                                                          0.0s
 => => extracting sha256:a68320b39f05bd70aece8c6424500a4dd882c9811978e81bd8c807b3f9347305                                                                          2.1s
 => [flutterdevel  2/11] WORKDIR /workspace                                                                                                                        0.1s
 => [flutterdevel  3/11] RUN apt update && apt upgrade -y                                                                                                          1.9s
 => [flutterdevel  4/11] RUN apt install -y clang cmake ninja-build pkg-config libgtk-3-dev                                                                       30.7s
 => [flutterdevel  5/11] RUN dart pub global activate fvm                                                                                                          4.1s
 => [flutterdevel  6/11] RUN fvm doctor                                                                                                                            0.3s
 => [flutterdevel  7/11] RUN fvm install 3.19.5 && fvm use --force 3.19.5                                                                                         45.3s
 => [flutterdevel  8/11] RUN fvm flutter config --enable-web                                                                                                       0.3s
 => [flutterdevel  9/11] RUN fvm global 3.19.5                                                                                                                     0.3s
 => [flutterdevel 10/11] RUN fvm flutter doctor                                                                                                                    8.5s
 => [flutterdevel 11/11] RUN echo 'export PATH="${PATH}:/root/fvm/default/bin:${FVM_ROOT}/bin"' > ~/.bash_profile                                                  0.1s
 => [flutterdevel] exporting to image                                                                                                                              2.2s
 => => exporting layers                                                                                                                                            2.2s
 => => writing image sha256:bdf019e9ef7158960d59b108b05bf52b8405ee829dc3ac361dec02ee4163f4fb                                                                       0.0s
 => => naming to docker.io/library/docker-flutterdevel                                                                                                             0.0s
~/w/b/docker ❯❯❯ 

通った